`

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

阅读更多

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


        解决办法:连接数据库转化为对象出错的解决办法为在数据库连接后面加上参数zeroDateTimeBehavior=convertToNull,这样如果碰到‘0000-00-00:00:00:00’的日期类型时,将会转化为null值。

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

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

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


         验证的工程在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

  • 大小: 20.5 KB
  • 大小: 17.6 KB
  • 大小: 107.1 KB
分享到:
评论

相关推荐

    oracle,mysql表格转换mybatis相关文件

    总的来说,从Oracle和MySQL表格转换为MyBatis相关文件涉及数据库表结构的理解、MyBatis映射文件的编写、动态SQL的构造以及事务管理等多个方面。理解这些知识点对于开发人员来说非常重要,因为它们直接决定了数据库...

    MyBatis的逆向工程——generatorSqlmapCustom

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。逆向工程(Reverse Engineering)是MyBatis中的一个重要特性,它允许开发者...

    java实体转mysql建表语句

    在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...

    java springboot tk mybatis

    3. **MySQL时间处理**:在MySQL中,我们可以使用`TIMESTAMP`或`DATETIME`类型来存储时间,它们都可以存储日期和时间信息。如果需要自动设置时间,可以使用`ON UPDATE CURRENT_TIMESTAMP`属性,这样在更新记录时,该...

    Hibernate_学习笔记.

    - **映射日期与时间类型**:指定日期和时间字段的精度,例如使用`TemporalType.TIMESTAMP`。 - **映射枚举类型**:通过`@Enumerated(EnumType.STRING)`或`EnumType.ORDINAL`指定枚举类型的存储方式。 #### 使用...

    java面试知识

    - **本地方法栈**:为虚拟机使用到的Native方法服务。 ##### 内存泄露和内存溢出 - **内存泄露**:不再使用的对象没有被垃圾回收机制及时回收,导致内存占用持续增加。 - **内存溢出**:当程序申请内存超过系统所...

    datetime时间插入的5种方式

    MyBatis作为一个轻量级的持久层框架,为开发者提供了灵活的操作接口。本篇文章将详细介绍在MyBatis中插入datetime时间的五种方法,帮助你更好地理解和运用。 1. **SQL字符串拼接** 最简单的方式是直接在SQL语句中...

Global site tag (gtag.js) - Google Analytics