網站首頁 mysql 正文
大家在連接mysql的時候,啟動項目,會警告你推薦使用com.mysql.cj.jdbc.Driver?而不是com.mysql.jdbc.Driver?
那么這兩者到底有什么區別呢
本質區別:
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=
注意:
需要指定時區(serverTimezone=UTC)和 使用SSL (useSSL=false)
另外還需注意:
在設定時區的時候,如果設定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驅動:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
這是使用的是8.0.16版本的Mysql驅動,那么會報一下的錯誤:
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自動注冊
并且通常不需要手動加載驅動程序類。
這時候你就要把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.
上面報錯翻譯:
警告:建議不要在沒有服務器身份驗證的情況下建立SSL連接。
根據MySQL 5.5.45 +,5.6.26+和5.7.6+要求SSL連接
如果未設置顯式選項,則必須默認建立。
為了符合不使用SSL的現有應用程序,verifyServerCertificate屬性設置為“false”。
您需要通過設置useSSL = false顯式禁用SSL,
或者設置useSSL = true并為服務器證書驗證提供信任庫。
這個時候如果不需要SSL驗證,就在url后面加useSSL=false
這個時候就不會報警告了.
使用mysql? 8.0.16 版本的驅動的時候解決如下報錯:
java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.
這是由于數據庫和系統時區差異所造成的,在jdbc連接的url后面加上serverTimezone=GMT即可解決問題,如果需要使用gmt+8時區,需要寫成GMT%2B8,否則會被解析為空。
再一個解決辦法就是使用低版本的MySQL jdbc驅動,5.1.28不會存在時區的問題。
?
原文鏈接:https://blog.csdn.net/a907691592/article/details/96876030
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-08-22 pyecharts繪制時間輪播圖柱形圖+餅圖+玫瑰圖+折線圖_python
- 2022-05-11 linq中的分組操作符_實用技巧
- 2022-01-10 egg作為后端接口,在前端調用
- 2023-06-17 詳解Flask數據庫的連接與使用_python
- 2023-01-29 Python使用pandas導入xlsx格式的excel文件內容操作代碼_python
- 2022-05-27 react使用axios進行api網絡請求的封裝方法詳解_React
- 2022-07-06 Python?Pyecharts繪制桑基圖分析用戶行為路徑_python
- 2022-06-17 Python語法學習之正則表達式的量詞匯總_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支