/ / Драйвер не виявлено Виняток JDBC - java, mysql, jdbc

Driver не знайдено виняток JDBC - java, mysql, jdbc

Я продовжую отримувати наступне виключення при підключенні до бази даних від eclipse.

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();
}

Я працюю з Eclipse Oxygen, в проекті Maven. База даних створюється за допомогою MYSQLWorkbench 6.0CE.

Але я не знаю, що сталося з драйвером.

Відповіді:

0 для відповіді № 1

Я вважаю, що ім'я драйвера неправильне Ось драйвер, який я використовую, спробуйте

com.mysql.jdbc.Driver

також зробіть "H" у нижньому регістрі локального хоста

Якщо вищенаведене рішення не працює:

1: видалення імпорту com.mysql.cj.jdbc.* 2: Використовуйте цей драйвер private static final String DRIVER = "com.mysql.cj.jdbc.Driver";


0 для відповіді № 2

Проблема полягає в тому, що ви використовуєте драйвер 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 і більш високу автоматичну завантаження драйверів.