`

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
分享到:
评论

相关推荐

    mybatis-plus快速入门项目-mybatis-plus基本操作大全-附带sql+项目文档

    MyBatis-Plus支持乐观锁机制,通过在实体类中添加version或timestamp字段,可以在更新数据时防止并发问题。 10. **项目文档** 提供的项目文档应该详细介绍了如何搭建环境、配置MyBatis-Plus、使用各种API以及如何...

    mybatis-3-mybatis-3.4.5.rar

    8. **TypeHandler**:处理Java类型与数据库类型的转换,如Java的Date类型与数据库的TIMESTAMP类型之间的转换。 9. **Mapper接口与Mapper代理**:在使用MyBatis时,我们通常会定义一个Mapper接口,然后MyBatis通过...

    mybatis-generator-core-1.3.2-sources

    例如,如果我们要自定义处理Oracle的TIMESTAMP类型,可以继承`JavaTypeResolverDefaultImpl`,然后覆盖`calculateJavaType`方法来实现自己的类型映射逻辑。 5. **自定义插件**:在`org.mybatis.generator.api....

    mybatis数据类型错误及解决方法

    在使用MyBatis框架进行Java开发时,我们经常会遇到数据类型错误的问题,这些错误主要源自于数据库字段类型与Java对象属性类型不匹配、SQL语句中的类型转换不当或MyBatis配置文件中的设置错误。本篇文章将深入探讨...

    探讨:sql插入空,默认1900-01-01 00:00:00.000的解决方法详解

    在SQL Server中,当我们在一个定义为`datetime`类型的字段中尝试插入空值或空白字符串时,系统通常会默认填充1900-01-01 00:00:00.000作为日期时间值。这是因为`datetime`类型不接受空值(NULL),如果未提供有效值...

    北京时间日期转时间戳、时间戳转北京时间日期

    time: 2012-01-01 00:00:00 timeStamp: 1538409599; time: 2018-10-01 23:59:59 timeStamp: 888645574; time: 1998-02-28 13:59:34 timeStamp: 1582991999; time: 2020-02-29 23:59:59 timeStamp: 1204300800; time...

    关于Hinbernate中TimeStamp类型字段处理的小例子

    解决方法是在数据库表定义中明确该字段允许为NULL,或者在实体类中初始化Timestamp为当前时间。 5. **Timestamp与时间戳转换**: - Hibernate在进行数据库交互时,需要将Timestamp类型与数据库的TIMESTAMP类型之间...

    mysql时间类型对应的java类型1

    - `java.time.*`(Java 8引入的新日期时间API)的类如`LocalDate`、`LocalTime`和`LocalDateTime`也可以转换为SQL类型,通过`PreparedStatement.setObject()`方法。 - **从MySQL到Java**: - 当从数据库查询结果...

    MySQL字段类型列表

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其字段类型设计得非常灵活,以适应各种数据存储需求。在MySQL中,字段类型决定了数据的存储方式、大小和格式。以下是对MySQL5中常见字段类型的详细说明: 1. **...

    解决mybatis-plus使用jdk8的LocalDateTime 查询时报错的方法

    在使用Mybatis-Plus进行数据查询时,如果你的实体类中使用了Java 8的`LocalDateTime`类型来表示日期时间,并遇到了`SQLFeatureNotSupportedException`的异常,这通常是因为数据库驱动不支持直接将`LocalDateTime`...

    MySQL字段类型说明

    MySQL 字段类型说明 MySQL 是一个功能强大且广泛使用的关系型数据库管理系统,它支持大量的列类型,可以被分为数字类型、日期和时间类型以及字符串(字符)类型。本节对 MySQL 字段类型进行了详细的说明,包括每个...

    MySql所有字段类型及长度范围

    ### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...

    MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数

    此外,MySQL允许在一个表中最多定义两个自动更新的`TIMESTAMP`字段,其中一个可以设置为`CURRENT_TIMESTAMP`作为默认值,另一个可以设置为`ON UPDATE CURRENT_TIMESTAMP`,这样在插入新行或更新行时,这两个字段都会...

    Mysql字段类型说明

    MySQL是一种广泛使用的开源关系型数据库管理系统,其字段类型是数据库设计中的重要概念,它决定了数据存储的格式和特性。理解并正确选择字段类型对于优化数据库性能、节省存储空间以及确保数据准确性至关重要。以下...

    joda-time-mybatis:Joda时间类型的Mybatis映射

    因此,joda-time-mybatis将所有日期设置为UTC(对于Joda Instants,不适用于Joda部分课程) 为了获得一致的结果,您的JVM应该 在UTC中运行(-Dtimezone = UTC) 与数据库服务器处于同一时区 例子 SQL(在这种情况...

    MySql数据库的列类型(字段类型)

    MySQL数据库的列类型,也称为字段类型,是数据库设计中的关键元素,决定了数据的存储、处理和检索方式。这些类型大致分为数值类、字符串类和日期/时间类。以下是各类别的详细说明: **数值类数据列类型:** 1. **...

    MySQL timestamp的类型与时区实例详解

    MySQL的timestamp类型时间范围between ‘1970-01-01 00:00:01’ and ‘2038-01-19 03:14:07’,超出这个范围则值记录为’0000-00-00 00:00:00’,该类型的一个重要特点就是保存的时间与时区密切相关,上述所说的时间...

    bookmanager 图书管理 spirngmvc+mybatis

    bookmanager 图书管理可以实现增删改查,用的mysql数据库。 spirngmvc+mybatis /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50536 Source Host : localhost:3306 Source ...

Global site tag (gtag.js) - Google Analytics