驱动程序未找到JDBC异常

时间:2018-05-01 09:45:19

标签: java mysql jdbc

从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创建数据库。

但我不知道驱动程序有什么问题。

2 个答案:

答案 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和更高的自动驱动程序加载,在很多情况下甚至不需要像这样加载驱动程序。