1. 程式人生 > >com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的區別 serverTimezone設定 【轉】

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的區別 serverTimezone設定 【轉】

原文轉載自https://blog.csdn.net/superdangbo/article/details/78732700



com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的

1、JDBC連線Mysql5 com.mysql.jdbc.Driver:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:
3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root password=
  • 1
  • 2
  • 3
  • 4

2、JDBC連線Mysql6 com.mysql.cj.jdbc.Driver, 需要指定時區serverTimezone:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=
false
username=root password=
  • 1
  • 2
  • 3
  • 4

在設定時區的時候,如果設定serverTimezone=UTC,會比中國時間早8個小時,如果在中國,可以選擇Asia/Shanghai或者Asia/Hongkong,例如:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=
false
username=root password=
  • 1
  • 2
  • 3
  • 4

備註:

I、如果mysql-connector-java用的6.0以上的,如下:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

但是你的driver用的還是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.
  
  • 1
  • 2
  • 3
  • 4

此時需要把com.mysql.jdbc.Driver 改為com.mysql.cj.jdbc.Driver

II、還有一個警告:

WARN: Establishing SSL connection without server’s identity verification is not recommended. 
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection 
must be established by default if explicit option isn’t set. 
For compliance with existing applications not using SSL the verifyServerCertificate property is set tofalse’. 
You need either to explicitly disable SSL by setting useSSL=false, 
or set useSSL=true and provide truststore for server certificate verification.
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

不推薦不使用伺服器身份驗證來建立SSL連線。
如果未明確設定,MySQL 5.5.45+, 5.6.26+ and 5.7.6+版本預設要求建立SSL連線。
為了符合當前不使用SSL連線的應用程式,verifyServerCertificate屬性設定為’false’。
如果你不需要使用SSL連線,你需要通過設定useSSL=false來顯式禁用SSL連線。
如果你需要用SSL連線,就要為伺服器證書驗證提供信任庫,並設定useSSL=true

SSL – Secure Sockets Layer(安全套接層)

回到頂部



com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的