JDBC中com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

最近重装了系统,随后在官网下载了最新版本的MySQL8.0.13和相应的mysql-connector-java-8.0.13,运行程序时出现好几种错误。

之前的代码是这样的:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db1?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root

在连接数据库时报错,提示

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'加载驱动,而且驱动程序已经自动加载好了。之前看到过在Mysql5之后的驱动包都会自动加载驱动。

现在将driverClassName的值改为com.mysql.cj.jdbc.Driver,运行程序,又提示如下错误

The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

 意思就是需要通过ServerTimeZone属性来设置一个时区,去网上查询之后,可以选择东8区的Hongkong或者Asia/Shanghai作为参数,修改后的代码如下

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///db1?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=root

总的来说,

com.mysql.jdbc.Driver 是 mysql-connector-java 5及5之前的, 
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及6之后的的,

从jar文件下的目录也能看出来,在5的时候是没有cj这个子目录的,如图

而在8中,目录如下

  • 20
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值