2013-04-05 5 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

+1

сообщает, что он не может найти 'kholofelodb' в MySQL –

+0

Вы проверили, что сервер MySQL запущен на вашем локальном компьютере? – MikeD

ответ

1

пожалуйста, проверьте в базе данных MySQL существует ли имя базы данных «kholofedb» или не

я думаю, что вы не создали

пожалуйста, проверьте его один раз, если не создать его и связанные с ним таблицы также

0

Кажется, что вина лежит имя вашей базы данных. MySQL - это механизм базы данных, но в MySQL вы можете иметь несколько баз данных со своими собственными таблицами. Как только вы получите правильное имя базы данных, вы можете обнаружить, что проблема будет решена.

3

У меня была та же проблема, и выяснилось, что причина этого была: Название базы данных здесь CASE SENSITIVE! Итак, я пытался подключиться с использованием имени базы данных, такого как «test2», но имя базы данных на самом деле было «Test2».

0

Проблема с именами ваших баз данных. Сначала нужно создать на базе данных в MySQL * создать соединение с базой данных .Concentrate в этих областях: имя базы данных: URL: имя базы данных Упоминание правильно , что имя базы данных должны быть отражены в базе данных MySQL *

1

Войдите на сервер MySQL,

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

Список всех баз данных,

mysql> show databases; 

Проверьте, находится ли там ваше имя БД,

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

Пожалуйста, не указывайте, что имена баз данных чувствительны к регистру.

Надеюсь, это поможет.