本文轉載,原文鏈接:
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 一起用。