升级mysql-connector-java中timestamp的坑

现象:

connector在5.1.23版本后,java.util.Date的数据中小数秒会被拼接到sql中,导致更新、查询中timestamp用在where条件找不到存在的数据。

问题复盘:

我们项目中之前用到的connector版本是5.1.21,需要升级到5.1.32。昨天升级后发布一台机器发现了报错。报错的方法是完成生成派单(F单insert),然后更新该派单的rootid(F单update)的功能。我们在noah环境上复现了问题,并打开了mybatis输出sql语句的开关,发现输出的派单订单表f_n_order_info中的last_updated字段输出格式为:2017-11-29 16:41:31.088。
FOrderInfo实体类中lastUpdated字段的类型为java.util.Date。

/**
* 最后更新时间
*/
private Date lastUpdated;

mysql中f_n_order_info表中last_updated字段为TimeStamp类型。
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP` COMMENT ‘最后更新时间’
出问题的update语句:

  update f_n_order_info
        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值