记一次数据库更新丢失问题以及解决方案

前言

最近在项目中出现了更新数据库偶尔更新丢失的情况,表现为SQL执行成功,没有任何报错,在同一事务中查询保存后的记录,没有任何问题,然而查看数据库记录却没有更新。重点是这种情况并不是稳定发生的,有时能够更新成功,又是却会更新丢失。

原因

阅读更多

解决Java MySQL驱动中MySQL时区与JVM时区的转换问题

在MySQL中,当使用timestamp作为储存时间的类型时,其读写都与sessiontime_zone有关。当没有显式指定时,当前session的time_zone会继承全局设置

  • 当写入时,会根据当前session的time_zone转换成UTC时间,将其时间戳进行储存
  • 当读取时,会将UTC时间戳转换为session所设置的time_zone所对应的时间

根据其他资料在连接字符串中添加参数serverTimezone

阅读更多