【MySQL版本問題】Eclipse鏈接MySQL數據庫出現java.lang.unsupportClassVersionError+5.x和8.x版本連接方式差異

查閱連接數據庫操作後,發現MySQL數據庫版本很重要。

8.0以前:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/數據庫名稱?useUnicode=true&characterEncoding=utf8&useSSL=false
/*mysql數據庫用的是gbk編碼,而項目數據庫用的是utf-8編碼。這時候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那麼作用有如下兩個方面:
1. 存數據時:數據庫在存放項目數據的時候會先用UTF-8格式將數據解碼成字節碼,然後再將解碼後的字節碼重新使用GBK編碼存放到數據庫中。
2.取數據時:在從數據庫中取數據的時候,數據庫會先將數據庫中的數據按GBK格式解碼成字節碼,然後再將解碼後的字節碼重新按UTF-8格式編碼數據,最後再將數據返回給客戶端。*/

8.0以後:

jdbc.driver=com.mysql.cj.jdbc.Driver//多了一個cj字段
jdbc.url=jdbc:jdbc:mysql://localhost:3306/數據庫名稱?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
//比較舊版本多了一個時區設置

運行後下述SSL報錯,原因在於:mysql規範中默認開啓SSL連接,但是必須提交服務器身份驗證
在這裏插入圖片描述
在這裏插入圖片描述

下意識看了看自己已經安裝的版本信息,剛好是8.0,由於是在官方網址下載的最新版,沒理由找回舊版本安裝,越新越好。但是,卻出現了一系列無法連接的錯誤。

在這裏插入圖片描述
在這裏插入圖片描述
已經完全按照規範步驟下好對應的MySQL驅動包,添加依賴,編譯卻出現無論如何都解決不了的unsupportClassVersionError,我的jdk是1.7版本,MySQL的驅動包是mysql-connector-java-8.0.16,按照正常來說我應該能夠成功鏈接上了,但是並沒有。我翻找原因終於發現:
在這裏插入圖片描述
jdk1.7不能使用mysql6.0以上的驅動包,但是我同時又犯迷糊了,我的MySQL版本不就是8.0的嗎?這個版本號難道不是指安裝的數據庫軟件版本,而是指驅動包的版本?修改驅動包爲mysql-connector-java-5.1.49.jar,果然!數據庫能夠成功連接讀寫數據了。
總結一下:
MySQL數據庫版本是5.0.X版本或者8.0.X版本,是指具體的驅動包版本,而不是特指你安裝的數據庫程序的版本,就目前瞭解來講,數據庫程序應該是向下兼容的,程序版本爲8.0的也可以使用舊的驅動包,使用舊的鏈接方式讀寫數據庫就是使用舊的mySQL數據庫特性。如果非要使用8.0以上的數據庫版本,驅動包就需要選擇8.0以上,並且jdk爲1.8以上。想偷懶保持1.7的就只能用回舊的jar驅動包了,目前8.0數據庫版本也是同時支持新舊兩種jar驅動包的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章