欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的區(qū)別

 更新時間:2024年03月14日 14:49:44   作者:DayFight_DayUp  
大家在連接mysql的時候,啟動項目,會警告你推薦使用com.mysql.cj.jdbc.Driver?而不是com.mysql.jdbc.Driver,本文主要介紹了com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的區(qū)別,具有一定的參考價值,感興趣的可以了解一下

大家在連接mysql的時候,啟動項目,會警告你推薦使用com.mysql.cj.jdbc.Driver 而不是com.mysql.jdbc.Driver 

那么這兩者到底有什么區(qū)別呢

本質(zhì)區(qū)別:

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

在使用com.mysql.jdbc.Driver時,配置是需要下面這樣的:

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

在使用com.mysql.cj.jdbc.Driver時,則是需要下面這樣的配置的:

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

注意:

需要指定時區(qū)(serverTimezone=UTC)和 使用SSL (useSSL=false)

另外還需注意:

在設(shè)定時區(qū)的時候,如果設(shè)定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=

情況分析:

如果你maven使用的是6版本以及以上版本的mysql驅(qū)動:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

這是使用的是8.0.16版本的Mysql驅(qū)動,那么會報一下的錯誤:

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'。 這已被棄用。 新的
驅(qū)動程序類是'com.mysql.cj.jdbc.Driver'。
驅(qū)動程序通過SPI自動注冊
并且通常不需要手動加載驅(qū)動程序類。

這時候你就要把com.mysql.jdbc.Driver 改為 com.mysql.cj.jdbc.Driver

但是你改完之后還是會報錯:

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 to ‘false’. 
You need either to explicitly disable SSL by setting useSSL=false, 
or set useSSL=true and provide truststore for server certificate verification.

上面報錯翻譯:

警告:建議不要在沒有服務(wù)器身份驗證的情況下建立SSL連接。
根據(jù)MySQL 5.5.45 +,5.6.26+和5.7.6+要求SSL連接
如果未設(shè)置顯式選項,則必須默認建立。
為了符合不使用SSL的現(xiàn)有應(yīng)用程序,verifyServerCertificate屬性設(shè)置為“false”。
您需要通過設(shè)置useSSL = false顯式禁用SSL,
或者設(shè)置useSSL = true并為服務(wù)器證書驗證提供信任庫。

這個時候如果不需要SSL驗證,就在url后面加useSSL=false

這個時候就不會報警告了.

使用mysql  8.0.16 版本的驅(qū)動的時候解決如下報錯:

java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.

這是由于數(shù)據(jù)庫和系統(tǒng)時區(qū)差異所造成的,在jdbc連接的url后面加上serverTimezone=GMT即可解決問題,如果需要使用gmt+8時區(qū),需要寫成GMT%2B8,否則會被解析為空。

再一個解決辦法就是使用低版本的MySQL jdbc驅(qū)動,5.1.28不會存在時區(qū)的問題。

到此這篇關(guān)于com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的區(qū)別的文章就介紹到這了,更多相關(guān)com.mysql.jdbc.Driver com.mysql.cj.jdbc.Driver內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論