2017-07-30 40 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或其他)。

話雖如此,你真的不應該手動打包罐子,因爲這是一個單調乏味且容易出錯的過程。

最後,除非是自己的玩具應用程序,否則不應直接通過移動應用程序連接到數據庫。你基本上可以直接訪問你的數據庫給任何擁有應用程序副本的人。