Mysql下使用mybatis查询,报java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as j...

我们项目的持久层框架采用的的是Mybatis,今天有个项目一直报 java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 的异常 ,从异常报错来看,是 0000-00-00 00:00:00无法转换为 java.sql.Timestamp的问题。查看相应的表,对应的日期类型默认值确实是0000-00-00 00:00:00,且mysql的时间类型定义时如果不指明为NULL,则默认为not null,产生一个默认值即'0000-00-00',于是查阅解决办法,有如如下解决方法:

方法1:

数据库连接url增加参数zeroDateTimeBehavior=convertToNull或者round,将默认的'0000-00-00'转换为其他值;

方法2:

定义时间类型时给出默认值,例如 date not null default '1970-00-00',(mysql的时间类型默认值必须从’1970-00-00‘开始)

方法3:

定义时间类型时默认为null

你可能感兴趣的:(Mysql下使用mybatis查询,报java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as j...)