Драйвер не найден, исключение JDBC - PullRequest
0 голосов
/ 01 мая 2018

Я получаю следующее исключение при подключении к базе данных из затмения.

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at connection.ConnectionFactory.<init>(ConnectionFactory.java:29)
    at connection.ConnectionFactory.<clinit>(ConnectionFactory.java:25)
    at dao.StudentDAO.insert(StudentDAO.java:53)
    at bll.StudentBLL.insertStudent(StudentBLL.java:39)
    at start.Start.main(Start.java:23)

Однако соединение установлено, я могу читать из базы данных, я могу писать в нее, но исключение не исчезает. Я добавил mysql-connector-java-5.1.45-bin в файл пути с путем сборки и появился в разделе библиотеки. Я считаю, что URL, пользователь и пароль написаны правильно, так как я могу писать в БД. Соединение установлено:

   try {
            connection = DriverManager.getConnection("jdbc:mysql://localHost:3306/schooldb","root","");
        } catch (SQLException e) {
            LOGGER.log(Level.WARNING, "An error occured while trying to connect to the database");
            e.printStackTrace();
        }
        return connection;
    }

Код для драйвера:

  private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
    try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

Я работаю с Oclipse Oxygen, в проекте Maven. База данных создается с помощью MYSQLWorkbench 6.0CE.

Но я понятия не имею, что не так с драйвером.

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Проблема в том, что вы используете драйвер MySQL Connector / J 5.1.45, который использует имя класса драйвера com.mysql.jdbc.Driver, но пытаетесь загрузить имя класса драйвера, представленное в новом драйвере MySQL Connector / J 8.x .

Либо обновите до MySQL Connector / J 8.0.11 (доступно на https://dev.mysql.com/downloads/connector/j/),, либо - если вы хотите продолжать использовать 5.1.45 сейчас - используйте

private static final String DRIVER = "com.mysql.jdbc.Driver";

Для обратной совместимости MySQL Connector / J 8.x также сохраняет вышеупомянутый класс для загрузки.

Технически, загрузка драйвера таким образом даже не требуется во многих ситуациях из-за JDBC 4 и выше, автоматическая загрузка драйвера.

0 голосов
/ 01 мая 2018

Я думаю, что ваше имя водителя неверно Вот драйвер, который я использую, попробуйте

com.mysql.jdbc.Driver

также введите 'H' в нижнем регистре локального хоста

Если указанное выше решение не работает:

1: удалить импорт com.mysql.cj.jdbc.* 2: Используйте этот драйвер private static final String DRIVER = "com.mysql.cj.jdbc.Driver";

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