![](/img/trans.png)
[英]java.lang.ClassNotFoundException: com.google.cloud.sql.mysql.SocketFactory
[英]ClassNotFoundException: Google Cloud SQL with MySQL/SocketFactory
我正在嘗試將我的 Java 代碼連接到我在 Google Cloud SQL 中創建的數據庫,但我收到了 ClassNotFound 和 SQLException 錯誤:-
java.lang.ClassNotFoundException:com.google.cloud.sql.Z81C3B080DAD537DE7EZ.SocketFactory9
java.sql.SQLException:沒有找到適合 jdbc:Z81C3B080DAD537DE57E10E09ZA7 的驅動程序
我還在下面行的 getAllFilms() 方法中的代碼中得到了 NullPointerException,我假設這是因為代碼沒有建立數據庫連接:-
結果集 rs1 = stmt.executeQuery(selectSQL);
到目前為止我做過的事情:-
不幸的是,我仍然無法解決。 希望有人可以提供幫助。 我在下面附上了我的 Java 代碼。 提前致謝...
Film oneFilm = null;
Connection googleSqlConnection = null;
Statement stmt = null;
String url = "jdbc:mysql:///<dbname>?<cloudSqlInstance>&socketFactory=com.google.cloud.sql.
mysql.SocketFactory&user=<user>&password=<pword>";
public FilmDAO() {
}
private void openConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.google.cloud.sql.mysql.SocketFactory");
} catch (Exception e) {
System.out.println(e);
}
try {
googleSqlConnection = DriverManager.getConnection(url);
stmt = googleSqlConnection.createStatement();
} catch (SQLException se) {
System.out.println(se);
}
}
private void closeConnection() {
try {
googleSqlConnection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public ArrayList<Film> getAllFilms() {
ArrayList<Film> allFilms = new ArrayList<>();
openConnection();
try {
String selectSQL = "select * from films limit 50";
ResultSet rs1 = stmt.executeQuery(selectSQL);
while (rs1.next()) {
oneFilm = getNextFilm(rs1);
allFilms.add(oneFilm);
}
stmt.close();
closeConnection();
} catch (SQLException se) {
System.out.println(se);
}
return allFilms;
}
[1]: https://stackoverflow.com/questions/53693679/connecting-to-google-cloud-sql-with-java
您是否已將 Cloud SQL JDBC SocketFactory 和mysql-connector-java
添加到您的pom.xml
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.