今天用JDBCTemplate时,发现启动服务器之后报错: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unknown system variable 'tx_isolation'。
网上说是因为MySQL版本过高的问题,我的MySQL版本是8.0,里面已经没有tx_isolation,变成了transaction_isolation,用了以下几种解决方法:
(1)更改MySQL
无效,仍然报错!
(2)将mysql-connector-java升级为与MySQL匹配的8.0版本及以上
我使用的是:mysql-connector-java-8.0.18.jar
解决了上一个问题,但是又出现了新的问题:
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than...
这个错误是因为mysql连接的依赖包是高版本的情况下,在配置datasource.url时不能简单的这样配:
url=jdbc:mysql://localhost:3306/day13
需要加上一些必要的后缀信息(改成下面的配置就可以了):
url=jdbc:mysql://localhost:3306/day13?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
ok,问题解决!
(3)有一天我按照上面的方法却报出了另外一个错误:
java.sql.SQLException: validateConnection false
检查了半天才发现,driverName少写了一个cj.差点吐血。。。
driverClassName=com.mysql.cj.jdbc.Driver