我正在尝试使用android studio连接到云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 连接器罐和 mysql 套接字工厂罐作为依赖项。
此外,我无法使用编译"com.google.cloud.sql:mysql-socket-factory:1.0.3"作为依赖项。
请帮忙。
提前谢谢。
该库包含多个 jar。如果你手动添加jars,你还需要添加它的依赖项(例如jdbc-socket-factory-core jar,也许是其他的(。
话虽如此,您真的不应该手动包装罐子,因为这是一个乏味且容易出错的过程。
最后,除非这是适合自己的玩具应用程序,否则您不应从移动应用程序直接连接到数据库。您实质上是将数据库的直接访问权限授予拥有该应用程序副本的任何人。