首先理清幾個(gè)概念:
JDBC:java數(shù)據(jù)庫(kù)連接,是Orical公司的指定的一套規(guī)范接口 java數(shù)據(jù)庫(kù)驅(qū)動(dòng):JDBC的實(shí)現(xiàn)類,由相應(yīng)的數(shù)據(jù)庫(kù)廠商提供,可以通過驅(qū)動(dòng)去操作不同的數(shù)據(jù)庫(kù) 在java-數(shù)據(jù)庫(kù)這里,jdbc-api中的所有包都是java.sql或者javax.sqlJDBC的操作步驟:
(1)建立數(shù)據(jù)庫(kù)和表
(2)創(chuàng)建項(xiàng)目
(3)導(dǎo)入驅(qū)動(dòng)jar包
(4)注冊(cè)驅(qū)動(dòng)
Class.forName("com.mysql.jdbc.Driver");
(5)獲取連接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:端口號(hào)/項(xiàng)目名", "登錄名", "密碼");
前言
最近安裝了一個(gè) mysql 8.0 版本的數(shù)據(jù)庫(kù),在程序中連接的時(shí)候可謂是狀況不斷。之前也會(huì)遇到一些問題,這里就對(duì)使用 JDBC 連接mysql 會(huì)出現(xiàn)的問題做一個(gè)匯總。
在此之前說(shuō)明一下環(huán)境:
開發(fā)工具:IDEA mysql版本: 8.0.12 for Win64 on x86_64 (MySQL Community Server - GPL) mysql驅(qū)動(dòng)包:8.0.12驅(qū)動(dòng)包URL 的改變
異常信息
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.
原因
通過異常我們可以發(fā)現(xiàn),新的驅(qū)動(dòng)url是com.mysql.cj.jdbc.Driver,經(jīng)過在網(wǎng)上查閱資料發(fā)現(xiàn),從 mysql6開始,驅(qū)動(dòng)包開始使用新的驅(qū)動(dòng) url。如果使用舊的 5.0 版本的驅(qū)動(dòng)包,則不用驅(qū)動(dòng)URL,但是如果使用舊的驅(qū)動(dòng)可能會(huì)出現(xiàn)一些意想不到的問題。所以還是建議將驅(qū)動(dòng)包升級(jí),然后改變 驅(qū)動(dòng) URL 的值。
解決方法
將驅(qū)動(dòng) URL 由com.mysql.jdbc.Driver 換成 com.mysql.cj.jdbc.Driver
SSL 警告
警告信息
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.
原因
對(duì)警告信息翻譯如下。
不建議在沒有服務(wù)器身份驗(yàn)證的情況下建立SSL連接。根據(jù)MySQL 5.5.45+,如果未設(shè)置顯式選項(xiàng),則默認(rèn)情況下必須建立5.6.26+和5.7.6+要求的SSL連接。對(duì)于不使用SSL的現(xiàn)有應(yīng)用程序,ValuyServer證書屬性設(shè)置為“false”。您需要通過設(shè)置useSSL=false來(lái)顯式禁用SSL,或者設(shè)置useSSL=true并提供用于服務(wù)器證書驗(yàn)證的信任庫(kù)`。
新聞熱點(diǎn)
疑難解答
圖片精選