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

阅读更多

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

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法_第1张图片
        解决办法:连接数据库转化为对象出错的解决办法为在数据库连接后面加上参数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映射时报错解决方法_第2张图片

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

mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法_第3张图片
         验证的工程在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映射时报错解决方法_第4张图片
  • 大小: 20.5 KB
  • mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法_第5张图片
  • 大小: 17.6 KB
  • mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法_第6张图片
  • 大小: 107.1 KB
  • MyBatisStudy01.zip (5.1 MB)
  • 下载次数: 4
  • 查看图片附件

你可能感兴趣的:(ibatis,mybatis,mysql,timestamp)