如何在使用 Java-MySQL 時解決 JDBC 中的資料庫未知錯誤?\n


如果你選擇了 MySQL 中不存在的任何資料庫,則會出現此類錯誤。我們首先在 JDBC 中顯示未知資料庫的錯誤。

Java 程式碼如下。此處,我們將資料庫設定為'onlinebookstore',它不存在

import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
   public static void main(String[] args) {
      String JdbcURL = "jdbc:mysql://:3306/onlinebookstore?useSSL=false";
      String Username = "root";
      String password = "123456";
      Connection con = null;
      try {
         con = DriverManager.getConnection(JdbcURL, Username, password);
         System.out.println("Connected to MySQL database");
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

以下輸出顯示相同錯誤

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'onlinebookstore'
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
   at com.mysql.jdbc.Util.getInstance(Util.java:408)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
   at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714)
   at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224)
   at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199)
   at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
   at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)
   at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:778)
   at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
   at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at UnknowDatabaseDemo.main(UnknowDatabaseDemo.java:15)

錯誤的螢幕截圖如下

要消除此類錯誤,只需轉到 MySQL 命令列並顯示所有資料庫名稱,然後從那裡使用所選的資料庫,即真正存在的資料庫。

此處,我們有許多資料庫,我將選擇資料庫'hb_student_tracker'。以下是我們使用 SHOW DATABASES 命令獲取的所有資料庫名稱的列表

以下是連線資料庫“hb_student_tracker”的 JDBC 程式碼。程式碼如下所示

import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
   public static void main(String[] args) {
      String JdbcURL = "jdbc:mysql://:3306/hb_student_tracker?useSSL=false";
      String Username = "root";
      String password = "123456";
      Connection con = null;
      try {
         con = DriverManager.getConnection(JdbcURL, Username, password);
         System.out.println("Connected to MySQL database");
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

螢幕截圖如下,顯示了輸出

更新於:30-07-2019

8K+ 檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.