关于com.mysql.jdbc.Driver与com.mysql.cj.jdbc.Driver的区别

 更新时间:2023年08月08日 10:18:03   作者:一切为了实战  
这篇文章主要介绍了关于com.mysql.jdbc.Driver与com.mysql.cj.jdbc.Driver的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

com.mysql.jdbc.Driver与com.mysql.cj.jdbc.Driver的区别

  • com.mysql.jdbc.Driver 是mybatis-connection-java 5 及 5 以下的
  • com.mysql.cj.jdbc.Driver是mybatis-connection-Java 6 及以上的

mybatis-connection-java 5 及 5 以下的jdbc的配置方式:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/carrent?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=密码

mybatis-connection-Java 6 及以上的jdbc的配置方式:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/carrent?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username=root
password=密码

如果使用的jar包是mybatis-connection-Java 6 及以上的,却使用了com.mysql.jdbc.Driver就会包如下异常:

Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new 
driver class is 'com.mysql.cj.jdbc.Driver

解决此异常的方法是将com.mysql.jdbc.Driver 换成com.mysql.cj.jdbc.Driver

除此之外,mybatis-connection-Java 6 及以上的url还需要配置时区serverTimeZone,否则会报如下异常

The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. 

此时需要在url上加上时区,serverTimeZone有多种值,UTC代表全球标准时间,我国是东八区,所以使用UTC会比我们的时间早八个小时;

我们可以使用中国的时区,如asia/shanghai;配置方法如下:

jdbc:mysql://127.0.0.1:3306/redis?serverTimezone=UTC&userUnicode=true&characterEncoding=utf-8

com.mysql.jdbc.Driver com.mysql.cj.jdbc.Driver

  • com.mysql.jdbc.Driver 是mysql 8.0 以下版本使用的驱动包
  • com.mysql.cj.jdbc.Driver 是 mysql8.0 使用的驱动包

在使用mybatis-plus 时,使用逆序工具 CodeGenerator生成代码提示 com.mysql.jdbc.Driver 驱动包错误,在 CodeGenerator 代码里面,检查一下 mysql 的驱动包是否与版本或者 pom 文件里面的不一致。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论