2017-07-30 89 views
0

我正尝试使用android studio连接到云端SQL。收到此错误连接到云时收到套接字错误SQL

07-30 16:51:12.511 23120-23120/com.example.pratyush.geofencing W/System.err: java.sql.SQLException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/cloud/sql/mysql/SslSocketFactory; 

我的代码:

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

     String instanceConnectionName = "instnce name"; 

     String jdbcUrl = String.format(
       "jdbc:mysql://google/%s?cloudSqlInstance=%s&" 
         + "socketFactory=com.google.cloud.sql.mysql.SocketFactory", 
       databaseName, 
       instanceConnectionName); 
     connection = DriverManager.getConnection(jdbcUrl, "user", "pwd"); 

     Statement statement = connection.createStatement(); 
     ResultSet resultSet = statement.executeQuery(query); 
     Log.d("GeoL", String.valueOf(resultSet)); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

我使用的MySQL连接器JAR和mysql套接字工厂的水瓶中相依。

另外我无法使用compile'c​​om.google.cloud.sql:mysql-socket-factory:1.0.3'作为依赖项。

请帮忙。

在此先感谢。

回答

0

该库包含多个罐子。如果您手动添加jar,您还需要添加它的依赖关系(例如,jdbc-socket-factory-core jar或其他)。

话虽如此,你真的不应该手动打包罐子,因为这是一个单调乏味且容易出错的过程。

最后,除非是自己的玩具应用程序,否则不应直接通过移动应用程序连接到数据库。你基本上可以直接访问你的数据库给任何拥有应用程序副本的人。

相关问题