京东-优惠雷达
新人页面
精选商品
首月0月租体验,领12个月京东PLUS
自营热卖

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

千纸鹤 24天前   阅读数 46 0

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

注意,这篇文章限于基础的入门操作,没有使用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列所给的版本号。如果使用最新的依赖项,可能会产生兼容性问题
在这里插入图片描述
可以看到,1.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,顺利解决报错。


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: