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

一、最重要的一步

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

9c1043c53cf04053b323d5bad472056b.png

二、版本不对称

第一步:检查项目中是否引入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的驱动包

2a5c6ff4c0c7475ba7af6c289b8aabf6.png

解决方法:
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包发布到类路径下。加入驱动后的项目结构如图所示:9795c295fe374a5d88062b50fa82f2f3.png

四、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的问题

1b1d0a7afd174af1a7f85bad3b344d0a.png上面这段报错中红色的文字很重要,这段文字告诉你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";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超翔之逸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值