2017-07-30 2 views
0

J'essaye de me connecter au cloud SQL en utilisant android studio. Réception cette erreurRéception d'une erreur de socket lors de la connexion au cloud 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; 

Mon code:

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(); 
    } 
} 

J'utilise jar connecteur mysql et pot d'usine socket MySQL en tant que dépendances.

Je ne peux pas non plus utiliser compile 'com.google.cloud.sql: mysql-socket-factory: 1.0.3' ceci comme une dépendance.

Aidez-nous s'il vous plaît.

Merci d'avance.

Répondre

0

La bibliothèque contient plusieurs bocaux. Si vous ajoutez manuellement les fichiers jar, vous devez également ajouter ses dépendances (par exemple jar jdbc-socket-factory-core, peut-être d'autres). Cela dit, vous ne devriez vraiment pas empaqueter manuellement les bocaux parce que c'est un processus fastidieux et sujet aux erreurs. Enfin, sauf s'il s'agit d'une application de jouet pour vous-même, vous ne devez pas vous connecter directement à la base de données à partir de votre application mobile. Vous donnez essentiellement un accès direct à votre base de données à toute personne ayant une copie de l'application.