使用框架存MySQL数据库时,日期格式报错mybatis Data truncation: Incorrect datetime value: '' for column 'modify_time‘

网上的解答很多种

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值