MySQL "Zero date value prohibited"问题解析

最近使用MyBatis时发现了java.sql.SQLException: Zero date value prohibited 的异常,网上查了一下原因。其实是Mysql数据库在面对0000-00-00 00:00:00日期的处理时,如果没有设置对应的对策,就会产生异常。

所以解决的方法是在jdbcUrl中设置处理zeroDateTimeBehavior来处理,一般有下面几种

解决方案

  1. 删除数据库中“0000-00-00 00:00:00”字段,因为是数据错误 (在当前情况不能修改生产数据)
  2. 编写处理数据为“0000-00-00 00:00:00”字段的方法(可取,但是需要修改每一处有数据为“0000-00-00 00:00:00”的代码段)
  3. 在 URL 中添加 zeroDateTimeBehavior(最简便)

zeroDateTimeBehavior=convertToNull

db.url=jdbc:mysql://xxx/xxx?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false&zeroDateTimeBehavior=convertToNull
# mysql   error   配置  

评论

企鹅群:39438021

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×