当使用框架访问数据库时出现下列错误
… server time zone value ‘???’ is unrecognized or represents more than one time …
或者
…BigInteger can’t … 之类的错误
请优先考虑 JDBC 的MySQL 驱动包版本问题!
如果你用的mysql版本是8.0
1.驱动名字改了,以往版本的是"com.mysql.jdbc.Driver",8.0版本的是"com.mysql.cj.jdbc.Driver"。
2.获得连接时,url的内容需要修改,以往的版本的是"jdbc:mysql://localhost/<数据库名>",8.0版本的是"jdbc:mysql://localhost/<数据库名>?useSSL = false&serverTimezone = UTC&"。
高版本会出现返回一个+8小时时差的时间,如果在JDBC的url后面加上
serverTimezone=GMT
即可解决问题,如果需要使用gmt+8时区,需要写成
GMT%2B8
还要注意一点,如果使在.xml文件中,要用&转义&,否则会被识别为一个特殊的字符
这里其实是因为xml把&作为一个特殊符号处理了(我选择再次死亡(╬▔皿▔)凸),所以我们需要把&替换为&这样就不会报错了。
低版本会产生Biginteger转换的问题
推荐一个神奇的版本:5.1.46
到目前为止帮我解决了2个框架链接数据库的问题。