14

我正在使用 JDBC 并且是新手。但我不断收到此运行时异常:

   connecting to psysical database...
   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'kholofelodb'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4113)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1308)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at com.psybergate.database.SimbleCode.main(SimbleCode.java:22)

这是给定的代码

try {
            String connectionURL =      "jdbc:mysql://localhost:3306/kholofelodb";
            Class.forName("com.mysql.jdbc.Driver");

            System.out.println("connecting to psysical database...");
            Connection conn = DriverManager.getConnection(connectionURL, USER,
                    PASS);

            Statement statement = conn.createStatement();
            System.out.println("Connection has been made");

            Scanner keyBoardScanner = new Scanner(System.in);
            System.out.println("Enter table name:");
            String tableName = keyBoardScanner.nextLine();

            System.out.println("Creating table...");
            statement.executeQuery("create table " + tableName
                    + " (name , age ,salary)");
            System.out.println("Table successfully created");
            System.out.println("Inserting data into the table ...");
            statement.executeUpdate("insert into " + tableName
                    + "values (kholofelo , 21 , 9969696)");
        } 

我如何让这段代码工作?我只是 JDBC 的初学者....

对于上述代码;PASS = "密码", USER = "root"

我的端口有问题,已通过此站点修复

多谢

4

9 回答 9

12

登录mysql服务器,

$ mysql -u <username> -p<password>

列出所有数据库,

mysql> show databases;

检查您的数据库名称是否存在,

+--------------------+
| Database           |
+--------------------+
| information_schema |
| kholofelodb        |
| mysql              |
| phpmyadmin         |
+--------------------+

请注意:数据库名称区分大小写。

希望这可以帮助。

于 2016-06-10T06:25:41.443 回答
8

请在 mysql 数据库中检查数据库名称“ kholofedb ”是否存在

我想你还没有创造

如果没有创建它及其相关表,请检查一次

于 2013-04-05T10:57:59.363 回答
5

我有同样的问题,发现它的原因是: 这里的数据库名称是区分大小写的! 所以,我试图使用像“test2”这样的数据库名称进行连接,但数据库名称实际上是“Test2”。

于 2013-10-21T13:08:42.790 回答
1

当服务器无法找到数据库时会发生此错误。这可能是由于数据库 URL 中给出的端口错误,例如

String DB_URL = "jdbc:mysql://localhost:3307/database_name"

所以检查这个端口号(在上面的例子中是 3307)和 Xampp 控制器中提到的端口(去 Xampp 控制器然后配置 MySql)。

于 2020-01-26T17:34:22.303 回答
0

似乎问题在于您的数据库名称。MySQL 是数据库引擎,但在 MySQL 中,您可以拥有许多具有自己表的数据库。一旦您获得正确的数据库名称,您可能会发现问题将得到解决。

于 2013-04-05T10:57:41.450 回答
0

问题仅在于您的数据库名称。首先在 mysql* 中创建数据库创建数据库连接。集中在以下方面:数据库名称:URL:正确提及数据库名称,数据库名称应反映 mysql* 中的数据库

于 2015-07-05T01:50:37.510 回答
0

是的,这个案例也到了我这里,实际上我的数据库名称是正确的,但问题出在我的端口号上应用程序那么首先建议检查它的端口值............

于 2020-10-14T11:02:10.597 回答
0

我遇到了同样的问题,实际上是因为他们告诉你使用 SQLWorkbench ....这是一个很好的设置,但是当你做这样的开发时,有时你在那个 GUI 上的工作实际上不会保存到 mySQL,我不不知道为什么会这样。工作台是一个很好的东西。我正在通过这个网站一步一步地做这件事: https ://dev.mysql.com/doc/mysql-getting-started/en/ ...它的老派...但是它的工作原理,我只是扔掉了我的工作台 LOL-

也许我设置工作台的方式有误?我不知道,但我想我会坚持旧学校的设置-

于 2021-08-07T21:47:44.257 回答
0

您可能尚未创建数据库,或者它的名称不是“kholofelodb”。如果你还没有创建一个,那就去做吧。如果你有但你不确定它的名字,在命令提示符下输入 C:\ MariaDB location > cd bin,然后mysql -u root -p并输入你的密码。然后输入显示数据库;. 您的数据库将显示它的名称。例如,我的称为“sys” 在此处输入图像描述

于 2021-09-20T18:33:44.857 回答