从eclipse连接到数据库时,我一直收到下一个异常。
D*x
然而,建立连接,我可以从数据库中读取,我可以在其中写入,但异常不会消失。 我已将mysql-connector-java-5.1.45-bin添加到带有构建路径的路径文件中,并显示在库部分。 我相信URL,用户和密码都是正确编写的,因为我可以在DB中写入。 连接由以下人员建立:
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)
驱动程序的代码是:
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;
}
我在Maven项目中使用eclipse Oxygen。 使用MYSQLWorkbench 6.0CE创建数据库。
但我不知道驱动程序有什么问题。
答案 0 :(得分:0)
我认为您的驱动程序名称不正确 这是我使用的驱动程序,试试吧
com.mysql.jdbc.Driver
也使本地主机小写的“H”
如果上述解决方案无效:
1:删除导入com.mysql.cj.jdbc.*
2:使用此驱动程序private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
答案 1 :(得分:0)
问题是您正在使用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和更高的自动驱动程序加载,在很多情况下甚至不需要像这样加载驱动程序。