java.lang.ClassNotFoundException:com.mysql.jdbc.Driver在Class.forName“ com.mysql.jdbc.Driver”newInstance;中出现

问题描述

代码

            Class.forName("com.MysqL.jdbc.Driver");

            MysqL = new MysqL("localhost",3306,"test","root","");
            MysqL.connect();

例外:

java.lang.classNotFoundException: com.MysqL.jdbc.Driver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.classLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.class.forName0(Native Method)
    at java.base/java.lang.class.forName(Class.java:340)
    at me.veteranfighter.discordbot.discordbot.main(discordbot.java:30)

我也尝试了Class.forName("com.MysqL.jdbc.Driver");也不起作用

我使用Java 14,并且已经实现了MysqL连接罐。

也许有人可以提供帮助。会非常感谢...

解决方法

确保您的类路径中有mysql-connector.jar。为了成功连接到MySQL数据库,类路径中必须存在“ com.mysql.jdbc.Driver”。

您可以从:-下载 https://dev.mysql.com/downloads/connector/j/

,

您使用了错误的完全合格的类名。由于您使用的是MySQL JDBC连接器v8.x,因此应为com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver。检查this了解更多信息。

请注意,在大多数情况下,从JDBC 4.0开始,您不再需要使用Class.forName("...")

注意:如果要在服务器中部署应用程序(war文件),请确保jar(驱动程序)可用于服务器。您可以简单地将jar的副本放入服务器的lib文件夹中。但是,推荐的方法是将jar打包到战争中。