jdbc連接mysql8以上需要注意的問題:
1、maven依賴需要指定8.0以上
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.20</version> </dependency>
2、加載驅動應該使用 com.mysql.cj.jdbc.Driver, 如果依舊使用 com.mysql.jdbc.Driver 會出現如下報錯:
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. java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at com.song.mybatis.jdbc.jdbcTest.main(jdbcTest.java:27)
在報錯提示中其實已經給出提示 com.mysql.jdbc.Driver 是廢棄的,不能使用, 應該使用新的驅動類 com.mysql.cj.jdbc.Driver
3、在寫連接路徑url時需要在末尾加上時區,mysql8以上的版本新增時區這個設置,下面錯誤就是由於數據庫和系統時區差異所造成,在jdbc連接的url后面加上serverTimezone=GMT即可解決問題,如果需要使用GMT+8時區,需要寫成GMT%2B8,否者會被解析為空。