用 Java-MySQL 解决 JDBC 中未知数据库错误?\
mysqlmysqli database
如果您选择 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://localhost: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://localhost: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(); } } }
屏幕截图显示输出如下: