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

相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/

