簡體   English   中英

ClassNotFoundException:谷歌雲 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);

到目前為止我做過的事情:-

  • 通過客戶端連接測試了 Google Cloud SQL 數據庫憑據
  • 審查了相關帖子,尤其是 [this one][1]
  • 瀏覽過 Google 文檔
  • 將 MySQL 和 Socket Factory Connector(j8) JARs 添加到我的項目依賴項中

不幸的是,我仍然無法解決。 希望有人可以提供幫助。 我在下面附上了我的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM