问题
今天在用 JOOQ 生成代码的时候,即运行 mvn clean install
命令时,出现以下错误,代码中指定的驱动明明是“com.mysql.jdbc.Driver”,但是报错信息中显示的确是驱动“com.mysql.cj.jdbc.Driver”。

经搜索,
com.mysql.jdbc.Driver
是 mysql-connector-java 5 中的com.mysql.cj.jdbc.Driver
是 mysql-connector-java 6 及以上版本中的
但是,我用的 MySQL 连接器也不是 mysql-connector-java 6 及以上版本的:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
排查
- 检查引入的外部 jar 包,没问题

- 网上搜索到这样一句话:
当在项目加入 mysql-connector-java 的依赖,但却不指定版本的时候,SpringBoot 是默认为我们指定了一个版本的。
我代码中指定了 mysql-connector-java 的版本号,并且检查引入的 jar 包也是 5 版本的,故应该不是这里的问题。
- 通过以上思路,于是我检查了 SpringBoot 指定的默认版本:



通过切换 SpringBoot 版本,发现了真相:
- 当 SpringBoot 是 2.0.x.RELEASE 及以下版本时,使用的是我们指定的 5.1.46 版本的 “mysql-connector-java”
- 当 SpringBoot 是 2.1.x.RELEASE 及以上版本时,默认使用的是 8.0.13 版本的 “mysql-connector-java”
几个 JDBC 驱动版本的对比
5.1.**版本
- 建议使用
- 长期维护更新的版本,最新一版是
Jul, 2019
维护的5.1.48
版本 - 对应
mysql
版本5.6
、5.
、https://qimok.cn 78.0
都可以放心使用
6.0.**版本
- 禁止使用
- 只有几个 re
言七墨 le言七墨 ase 版本,没有安全感,已经有一段时间不维护 - 与
5.1.**
存在一些兼容性的问题
8.0.**版本
- 酌情使用
- 尚未经过验证,该
https://qimok.cn 版本主要为了兼容MySQL8.0
- 更新十分频繁
- 需要
JDK8以上
解决
由于这是自己做的一个 demo 项目,当然是怎么