一 . 首先选择合适的jar包:
MySQL8.0版本对应的mysql -connection-java jar包版本要是8.0以上的,不然那会出现以下错误:
java.sql.SQLException: Unknown system variable ‘query_cache_size’
这个意思是mysql-connecter-java的版本过低,很显然是数据库驱动程序与数据库版本不对应。
选择如图8.0以上的版本:
这里博主提供一下百度网盘链接:https://pan.baidu.com/s/1c81NKgXTKzDdaUXI7_OWHA?pwd=1111
提取码:1111
接着就是把上面jar包导入就行,具体操作是:把jar包放在项目的lib目录下,然后点Add as library,然后点OK就行。
二. 修改URL和加载驱动
利用jdbc 进行连接mysql 8.0 以上的版本时,他的加载驱动和URL的书写和5.0版本的mysql不同,如若仍然会还按5.0版本的写,就会报以下错误:
URL没写正确,报以下错误:
EXCEPTION STACK TRACE:
** BEGIN NESTED EXCEPTION **
javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notify
STACKTRACE:
javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
at sun.security.ssl.Alert.createSSLException(Alert.java:133)
at sun.security.ssl.Alert.createSSLException(Alert.java:117)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:340)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:296)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:287)
at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:737)
at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:716)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:2249)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4232)
at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1472)
at com.kuang.test.TestJdbc.main(TestJdbc.java:39)
** END NESTED EXCEPTION **
解决方法:
url的设置得进行修改,原本的url如下:
String ur="jdbc:mysql:///db_0224";
应修改为如下:
String ur="jdbc:mysql:///db_0224?serverTimezone=GMT%2B8&useSSL=false";
驱动没写正确,报以下错误:
Loading class `com.mysql.jdbc.Driver'. This is deprecated.
解决方法:
5.0版本的驱动文件jar包对应的是:
Class.forName("com.mysql.jdbc.Driver");
语句来加载数据库驱动
而8.0x版本的数据库驱动文件,需要将加载数据库驱动的语句更改为:
Class.forName("com.mysql.cj.jdbc.Driver");