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