MySQL最新驱动com.mysql.cj.jdbc.Driver及配置过程
作者:Stackflowed
MySQL最新驱动com.mysql.cj.jdbc.Driver及配置
当前我使用的是mysql-connector-java:8.0.18版本,MySQL6之后的版本都是要指定时区serverTimezone的:
spring: datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.0.100:3306/easyexcel?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: 123456 validationQuery: select 1
`com.mysql.cj.jdbc.Driver`和`com.mysql.jdbc.Driver`区别及时区问题
问题原因
在日常使用MySQL连接数据库的时候,使用了很久的 com.mysql.jdbc.Driver
系统对此竟然提出了警告:
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.
加载类“com.mysql.jdbc.Driver”。
这是弃用的。
新的驱动类是' com.mysql.cj.jdbc.Driver'。
驱动程序是通过SPI自动注册的,手动加载驱动程序类通常是不必要的。
然后就很好奇,为什么一个使用了这么久的驱动,编译器竟然会给我们报一个警告
查阅资料发现,这是在使用maven导包的时候引发的不同
在以前使用 com.mysql.jdbc.Driver
的时候,导入的是 mysql-connector-java 5
现在使用 com.mysql.cj.jdbc.Driver
的时候,导入的是 mysql-connector-java 8
在 mysql-connector-java 5
以后的版本中(不包括5) 使用的都是 com.mysql.cj.jdbc.Driver
常见错误
1.时区设置:
jdbc:mysql://localhost:3306/Mybatis_db?serverTimezone=Asia/Shanghai
2. SSL – Secure Sockets Layer(安全套接层)
useSSL=true
开启
3. 编码问题
#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8 url=jdbc:mysql://127.0.0.1:3306/Mybatis_db?useUnicode=true&characterEncoding=utf-8
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。