2013-04-05 77 views
3

我正在使用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 =「根」

我曾與端口有問題,它是通過本網站固定

非常感謝

+1

數據庫的名稱是什麼? – jlordo 2013-04-05 10:55:20

+1

它告訴你它無法在MySQL中找到'kholofelodb' – 2013-04-05 10:56:14

+0

你是否證實MySQL服務器正在本地機器上運行? – MikeD 2013-04-05 11:02:20

回答

1

請在mysql數據庫檢查數據庫名稱「kholofedb」是否存在與否

我想你還沒有創建

請檢查一次,如果沒有創造它和它相關的表也

0

看來,癥結在於名稱你的數據庫。 MySQL是數據庫引擎,但在MySQL中,您可以擁有許多帶有自己表的數據庫。一旦你得到正確的數據庫名稱,你可能會發現問題會解決。

3

我有同樣的問題,發現它的原因是: 這裏的數據庫的名稱是CASE SENSITIVE! 所以,我試圖連接使用數據庫名稱,如「test2」,但數據庫名稱實際上是「Test2」。

0

問題僅限於您的數據庫名稱。首先在MySQL數據庫創建*在這些領域創建數據庫連接.Concentrate: 數據庫名稱: 網址:提數據庫名稱正確 該數據庫的名稱應該是反映在MySQL *

1

登錄數據庫MySQL服務器,

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

列出所有的數據庫,你的數據庫名稱

mysql> show databases; 

檢查是否存在,

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

請不要將數據庫名稱區分大小寫。

希望這會有所幫助。