踩坑Mybatis的日期类型转换

场景

先向数据库插入数据,其中含有一个日期字段insertDate,然后返回该日期字段。然后业务逻辑处理后,再根据这个日期来根据数据库的记录,此时会一定几率出现更新失败的情况。经排查后发现,mybatis-generator自动生成的xml中的jdbcType为timestamp,实际上数据库字段类型为datetime。然后查看打印插入数据SQL日志发现该日期带有毫秒数
插入时的SQL日志片段
然后mybatis插入执行后,转换为数据库的datetime类型时,后面的毫秒数四舍五入导致插入的时间比实际时间晚1s

解决方案

1、插入时,将毫秒数置零,更推荐这种,不修改数据库设计
在这里插入图片描述
2、将数据库字段调整为timestamp

猜你喜欢

转载自blog.csdn.net/baidu_38956956/article/details/115380511