com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver的区别
本文转载,原文链接:
com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver的区别_喝奶茶的妹妹不撩妹-CSDN博客_com.mysql.cj.jdbc.driver https://blog.csdn.net/weixin_43770545/article/details/90486809
今天写东西测试的时候发现一个问题,如下:
application.yml中数据源是这样配置的:
spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/springboot-mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.jdbc.Driver
第一反应就是记忆中连接mysql的驱动不都是com.mysql.jdbc.Driver吗?com.mysql.cj.jdbc.Driver是什么鬼?
后来查看了一下才知道 这个跟驱动的依赖版本有关。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
com.mysql.cj.jdbc.Driver是mysql-connector-java 6 中的特性,相比mysql-connector-java 5 多了一个时区:serverTimezone,把数据源配置的驱动改一下就好了
这样启动就不会再报:Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
使用UTC会有8小时的时差(中国快全球标准8小时,比如:全球标准当前是上午1点,中国时间则为上午9点),可设置为北京时间东八区GMT%2B8 或者上海时间Asia/Shanghai。
serverTimezone=Asia/Shanghai
url: jdbc:mysql://localhost:3306/springboot-mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
总结:
- com.mysql.jdbc.Driver和mysql-connector-java 5一起用。
- com.mysql.cj.jdbc.Driver和mysql-connector-java 6 一起用。