2014-05-03 2 views
1

im пытается подключиться к базе данных, но im получает эту ошибку.Ошибка подключения Java JDBC MySQL: ClassNotFoundException

это код

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class JDBCInsertValues { 

    public static void main(String[] args) throws Exception { 

     Class.forName("com.mysqljdbc.Driver"); 
     Connection conn = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/Drivers"); 

     PreparedStatement statement = conn.prepareStatement("SELECT * fom employee"); 
     ResultSet result = statement.executeQuery(); 
     while(result.next()){ 
      System.out.println(result.getString(1)+ " "+ result.getString(2)); 
     } 
    } 
} 

и это им ошибка при получении.

пробег:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysqljdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:259) 
    at JDBCInsertValues.main(JDBCInsertValues.java:14) 

Java Result: 1 
BUILD SUCCESSFUL (total time: 0 seconds) 

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

ответ

0

имя драйвера, кажется, неправильно

попробовать

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

вместо

Class.forName("com.mysqljdbc.Driver"); 
+0

, который сработал, я думаю, но теперь я получаю еще одну ошибку, которая является Исключением в потоке "main" java.sql.SQLException: Доступ запрещен для пользователя 'root' @ 'localhost' (используя пароль: ДА) это код, который я использую для подключения Connection conn = DriverManager.getConnection ( «jdbc: mysql: // localhost: 3306/Drivers», «root», «root»); любая идея почему? – user3594235

+0

... или просто опустить оператор Class.forName. В наши дни это обычно не требуется. (Разумно последние версии Java используют другой механизм для загрузки драйверов JDBC.) –

+0

@ user3594235 Если этот ответ решил ваш первоначальный вопрос, вы должны [принять] (http://meta.stackexchange.com/a/5235/238021) его и затем [задать новый вопрос] (http://stackoverflow.com/questions/ask), если у вас есть другая проблема, которую вам нужно решить. –

0

Я думаю, что вы используете ANT. Если это проблема, возможно, вы пропустили включение библиотеки mysql в build.xml

0

Я также нашел ту же проблему в своем коде. В своем коде вы должны сделать следующие вещи:

  1. изменение первой строки кода в главном методе Class.forName («com.mysql.jdbc.Driver»)
  2. Теперь извлечь MySQL Connector/J файл как mysql-connector-java-5.1.32.zip.
  3. У вас будет файл jar mysql-connector-java-5.1.32-bin.jar в папке mysql-connector- java-5.1.32, извлеченный на шаге 2
  4. Теперь правильно лижут ваш проект, перейдите в Build Путь >> Настроить путь сборки >> вкладка «Библиотеки» >> Добавить внешние JAR >> выберите mysql-connector-java-5.1.32-bin.jar из папки mysql-connector-java-5.1.32
  5. Обновите и запустите проект. Я надеюсь, что эти шаги решают вашу проблему.
Смежные вопросы