Druid连接MySQL数据库兼容性报错的解决方法

本文讲述了在使用Druid连接池时遇到的NullPointer异常,通过排查发现是由于Druid版本1.0.9与较新mysql-connector驱动不兼容。解决办法是升级Druid到更高版本,如1.1.22,确保驱动版本匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,这里是睿智的仓鼠。

注意,这篇文章使用原始的导入jar包操作,没有使用Maven管理。但是在Maven中解决问题的思路也是一致的。

报错信息

先来看错误信息:

警告: Cannot resolve com.mysq.jdbc.Connection.ping method.  Will use 'SELECT 1' instead.
java.lang.NullPointerException

连接池的getConnection()方法报错,错误类型是空指针异常。

解决方法

解决这个问题的方法是,检查你的druid版本与mysql-connector数据库驱动版本是否兼容
出现这个问题时,我使用的版本是:

  • IDEA 2021.2
  • druid-1.0.9
  • mysql-connector-java-8.0.26

进入Druid的Maven仓库查看兼容信息:
仓库地址:https://mvnrepository.com/artifact/com.alibaba/druid

我的Druid版本是1.0.9,在Maven仓库中我找到了1.1.0的版本,它是2017年的产物,也非常古老了。
在这里插入图片描述
找到你当前的版本,点击进入,下拉查看依赖情况。

其中,version 是编译时依赖项的版本号,updates 是依赖项的最新版本号。

项目中推荐使用version列所给的版本号。如果使用最新的依赖项,可能会产生兼容性问题
在这里插入图片描述
可以看到,druid1.1.0的版本,编译时的MySQL驱动版本只是5.1.39,这已经说明问题了。

经过查证,在mysql-connector5.1.49之前,不存在cj包,而在mysql-connector6及以后的版本就有了。所以,在mysql-connector5.1.49之前编译的Druid,不支持mysql-connector6之后的版本。

可见,这个错误是由于Druid的版本过低导致的。重新下载更高版本的Druid jar包,配置进项目即可。尝试更换druid-1.1.22,顺利解决报错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值