2017-07-28 83 views
0

我想从Android Studio连接到云端SQL。下面是我用来建立连接的代码。我是否需要从云端控制台进行任何代理设置?我是否需要在我的电脑上安装SQL或类似的东西?如何从android studio连接到云端SQL?

而且,到目前为止,我已经写了下面的代码和获得,没有合适的司机发现,错误。

CODE:

public void getDatafromSQL() { 
    Log.d("GeoL", "getSQL"); 
    Connection connection; 
    String query = "Some query"; 
    try { 
     String databaseName = "databaseName"; 

     String instanceConnectionName = "instanceConnectionName"; 

     String jdbcUrl = String.format(
       "jdbc:mysql://google/%s?cloudSqlInstance=%s&" 
         + "socketFactory=com.google.cloud.sql.mysql.SocketFactory", 
       databaseName, 
       instanceConnectionName); 
     connection = DriverManager.getConnection(jdbcUrl, user, password); 
     Statement statement = connection.createStatement(); 
     ResultSet resultSet = statement.executeQuery(query); 
     Log.d("GeoL", String.valueOf(resultSet)); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

错误消息:

07-28 16:55:22.881 11550-11550/com.example.pratyush.geofencing W/System.err: java.sql.SQLException: No suitable driver found for jdbc:mysql://google/[databasename]?cloudSqlInstance=[instanceName]&socketFactory=com.google.cloud.sql.mysql.SocketFactory 
07-28 16:55:22.886 11550-11550/com.example.pratyush.geofencing W/System.err:  at java.sql.DriverManager.getConnection(DriverManager.java:594) 
07-28 16:55:22.886 11550-11550/com.example.pratyush.geofencing W/System.err:  at java.sql.DriverManager.getConnection(DriverManager.java:219) 
07-28 16:55:22.886 11550-11550/com.example.pratyush.geofencing W/System.err:  at com.example.pratyush.geofencing.Main2Activity.getDatafromSQL(Main2Activity.java:169) 
07-28 16:55:22.886 11550-11550/com.example.pratyush.geofencing W/System.err:  at com.example.pratyush.geofencing.Main2Activity$1.onClick(Main2Activity.java:62) 

回答

0

所以,如果你想通过JDBC连接到外部MySQL数据库,你必须导入相应的JDBC驱动程序。

请看看下面的链接:https://gist.github.com/cofearabi/5039135

这是Android的例子。该驱动程序可以从官方的MySQL主页下载

https://dev.mysql.com/downloads/connector/j/

+0

不,它仍然说没有找到驱动程序。 –

+0

所以你改变了什么?请发布您更改的代码和/或配置 –

+0

我没有包含class.forname行。我补充说,现在说抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver与这行代码包含并给出了同样的老司机未发现异常没有这行代码 –