jdbc中的未知数据库

时间:2013-04-05 10:53:38

标签: java mysql sql eclipse jdbc

我正在使用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 =“passowrd”,USER =“root”

我遇到了通过此网站修复的端口问题

非常感谢

8 个答案:

答案 0 :(得分:4)

我有同样的问题,发现原因是: 此处的数据库名称为CASE SENSITIVE! 所以,我试图使用像“test2”这样的数据库名称进行连接,但数据库名称实际上是“Test2”。

答案 1 :(得分:3)

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

我认为你还没有创建

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

答案 2 :(得分:3)

登录mysql服务器,

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

列出所有数据库,

mysql> show databases;

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

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

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

希望这有帮助。

答案 3 :(得分:1)

当服务器找不到数据库时,会发生此错误。这可能是由于数据库URL中指定的端口错误所致,例如

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

因此,请使用Xampp控制器中提到的端口(转到Xampp控制器,然后配置MySql)来检查此端口号(上述情况下为3307)。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

问题仅与您的数据库名称有关。首先在mysql中创建数据库*创建数据库连接。集中在这些方面: 数据库名称 : URL:正确提及数据库名称 该数据库名称应该反映在mysql *

中的数据库

答案 6 :(得分:0)

是的,这种情况也到达了我,实际上我的数据库名称是正确的,但是问题出在我的端口号中,我正在使用端口号为3308的WAMPP服务器,并且我通过使用3306浪费了我的时间,因此您可以检查是否是u然后使用其他任何应用程序,建议先检查它的端口值...........

答案 7 :(得分:0)

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

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