关于用Vscode进行Java数据库编程出现java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver问题详细解决方案

一、最重要的一步

在加载外部库后,不能使用 Code Runner 插件运行,必须使用Java插件提供的 Run 按钮。

关于用Vscode进行Java数据库编程出现java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver问题详细解决方案_第1张图片

二、版本不对称

第一步:检查项目中是否引入mysql-connector-java驱动包,如果没引入,请先引入对应版本的该包。

第二步:检查mysql-connector-java驱动包的版本和配置的driver-class-name(驱动类名)是否一致。如果不一致会导致找不到Driver类,必须将版本和配置的驱动类名对应一致。

不同版本的mysql-connector-java驱动包的Driver类所在的位置不同,在5.x版本中Driver类在com.mysql.jdbc包路径下,到了6.x以上版本中Driver类在com.mysql.cj.jdbc包路径下。

如果我们在项目中配置的driver-class-name为com.mysql.jdbc.Driver,则对应的mysql-connector-java版本应该是5.x。

如果我们在项目中配置的driver-class-name为com.mysql.cj.jdbc.Driver,则对应的mysql-connector-java版本应该是6.x以上版本的。

三、缺失JDBC的驱动包

关于用Vscode进行Java数据库编程出现java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver问题详细解决方案_第2张图片

解决方法:
1.去Mysql官网下载最新版的驱动包
2.创建项目环境,导入数据库驱动

  1. 在Eclipse中新建一个java项目,使用鼠标右键单击项目名称
  2. 然后选择【New】→【Folder】,在弹出的窗口中将该文件命名为lib并单击【Finish】按钮
  3. 将下载好的Mysql数据库驱动文件mysql-connector-java-5.1.49-bin.jar复制到项目lib目录中
  4. 使用鼠标右键单击该JAR包,在弹出框中选择二【Build Path】→【Add to Build Path】,此时Eclipse会将该JAR包发布到类路径下。加入驱动后的项目结构如图所示:关于用Vscode进行Java数据库编程出现java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver问题详细解决方案_第3张图片

四、MySQL版本和配置的区别问题

com.mysql.jdbc.Driver mysql-connector-java 5中的
JDBC连接Mysql5 com.mysql.jdbc.Driver:

org.quartz.dataSource.qzDS.driver:com.mysql.jdbc.Driver

org.quartz.dataSource.qzDS.URL:jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8

com.mysql.cj.jdbc.Driver mysql-connector-java 6以上版本中的
JDBC连接Mysql6 com.mysql.cj.jdbc.Driver, 需要指定时区serverTimezone:

#org.quartz.dataSource.qzDS.driver:com.mysql.cj.jdbc.Driver

#org.quartz.dataSource.qzDS.URL:jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false

如果你用的mysql-connector-java 5,配置的是com.mysql.cj.jdbc.Driver的配置就会报java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver这个错误。

如果你用的mysql-connector-java 6以上版本的,配置的是com.mysql.jdbc.Driver的配置也会出现错误,总之MySQL版本一定要与其配置对应好。

五、无法连接mysql数据库8.0.1的问题

关于用Vscode进行Java数据库编程出现java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver问题详细解决方案_第4张图片上面这段报错中红色的文字很重要,这段文字告诉你mysql8.0和之前版本的区别,首先驱动换了,不是com.mysql.jdbc.Driver而是'com.mysql.cj.jdbc.Driver',此外mysql8.0是不需要建立ssl连接的,你需要显示关闭。最后你需要设置CST。所以我们需要在之前我们熟悉的java连接数据库代码的基础之上改动以下两行代码

        加载驱动类
        // static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false";
        String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
        建立连接
        // String path = "com.mysql.jdbc.Driver";
        String path = "com.mysql.cj.jdbc.Driver";

你可能感兴趣的:(Java学习,java,mysql,数据库)