网上的解答很多种
1)、mySQL5.7版本处理日期时的缺陷(我直接把版本降到5.6,还是报错,排除)
2)、mysql-connector-java.jar版本过低(本地jar包比网络推荐的版本还高,5.1.31版本的,排除)
3)、直接在jdbc的url后面加上useOldAliasMetadataBehavior=true(根本没起任何作用)
4)、同事说jdbc的url后面加zeroDateTimeBehavior=convertToNull (仍旧没起作用)
多次碰壁后,尝试了以下方法:
实体类对应的日期类型使用java.sql.Data
这么做倒是可以解决了,但是在此之前一直是java.util.Data,并且相同的工程在其他人的机器上或者在服务器上执行都没问题,我还是想搞明白为什么我本地的就不行。
于是猜想
1)我本地唯一与他人不同的,就只有编译环境不同,其他像mySQL版本、项目工程jar包等因素都在上述排查问题时做了统一了。
2)java.util.Data执行不通过、java.sql.Data执行通过,两个类都是jdk中的对象
所以猜想会不会是jdk的问题???
于是,将项目的jdk切换到其他版本,使用java.util.Data,很好,问题解决。
此前,我用的jdk版本是1.6.0_45,虽然服务器以及其他人的机器上使用的也是1.6版本的jdk,但我至今都无法确定,到底1.6.0_45这个版本,为何就是执行出错,是否有何设置可以控制日期??
后转的版本为1.8.0_121,但我估计换成其他版本的jdk也是可以的,可能只是刚好我的jdk发神经?或者,有得配置的点没处理到。
使用的框架为spring+Mybatis