欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法

程序员文章站 2022-04-26 12:07:24
...

        Java连接数据库转化为对象时报以下错误信息:

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 
        解决办法:连接数据库转化为对象出错的解决办法为在数据库连接后面加上参数zeroDateTimeBehavior=convertToNull,这样如果碰到‘0000-00-00:00:00:00’的日期类型时,将会转化为null值。

jdbc:mysql://10.107.96.170:3306/test?zeroDateTimeBehavior=convertToNull

        数据库表中的数据如下所示:

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 

        加上zeroDateTimeBehavior=convertToNull后,正常运行如下:

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 
         验证的工程在http://bijian1013.iteye.com/blog/2313380基础上修改的,详见附件《MyBatisStudy01.zip》。

 

        PS:mysql的timestamp类型定义时如果不指明为NULL,则默认为not null,产生一个默认值即'0000-00-00 00:00:00',所以上面的问题还有两种解决方案:

        1.定义时间类型时给出默认值,例如date not null default '1970-00-00';

        2.定义时间类型时默认为null,例如date null。

        官网给出timestamp类型默认值default范围是 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC,在中国,由于时区问题为1970-01-01 08:00:01 to 2038-01-19 11:14:07。

 

更多解决方法请参考:http://www.cnblogs.com/flyingeagle/articles/6639312.html

  • mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 
  • 大小: 20.5 KB
  • mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 
  • 大小: 17.6 KB
  • mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法
            
    
    博客分类: ibatis ibatismybatismysqltimestamp 
  • 大小: 107.1 KB