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
相关推荐
今天存数据时发现,保存的时候报错(Error 1292: Incorrect datetime value: '0000-00-00' for column 'deleted_at' at row 1) ,之后就搜索了下原因,是因为MySQL存日期时不允许出现这种格式导致的。下面记录下解决...
MyBatis-Plus支持乐观锁机制,通过在实体类中添加version或timestamp字段,可以在更新数据时防止并发问题。 10. **项目文档** 提供的项目文档应该详细介绍了如何搭建环境、配置MyBatis-Plus、使用各种API以及如何...
8. **TypeHandler**:处理Java类型与数据库类型的转换,如Java的Date类型与数据库的TIMESTAMP类型之间的转换。 9. **Mapper接口与Mapper代理**:在使用MyBatis时,我们通常会定义一个Mapper接口,然后MyBatis通过...
例如,如果我们要自定义处理Oracle的TIMESTAMP类型,可以继承`JavaTypeResolverDefaultImpl`,然后覆盖`calculateJavaType`方法来实现自己的类型映射逻辑。 5. **自定义插件**:在`org.mybatis.generator.api....
在SQL Server中,当我们在一个定义为`datetime`类型的字段中尝试插入空值或空白字符串时,系统通常会默认填充1900-01-01 00:00:00.000作为日期时间值。这是因为`datetime`类型不接受空值(NULL),如果未提供有效值...
在使用MyBatis框架进行Java开发时,我们经常会遇到数据类型错误的问题,这些错误主要源自于数据库字段类型与Java对象属性类型不匹配、SQL语句中的类型转换不当或MyBatis配置文件中的设置错误。本篇文章将深入探讨...
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...
解决方法是在数据库表定义中明确该字段允许为NULL,或者在实体类中初始化Timestamp为当前时间。 5. **Timestamp与时间戳转换**: - Hibernate在进行数据库交互时,需要将Timestamp类型与数据库的TIMESTAMP类型之间...
- `java.time.*`(Java 8引入的新日期时间API)的类如`LocalDate`、`LocalTime`和`LocalDateTime`也可以转换为SQL类型,通过`PreparedStatement.setObject()`方法。 - **从MySQL到Java**: - 当从数据库查询结果...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,其字段类型设计得非常灵活,以适应各种数据存储需求。在MySQL中,字段类型决定了数据的存储方式、大小和格式。以下是对MySQL5中常见字段类型的详细说明: 1. **...
在使用Mybatis-Plus进行数据查询时,如果你的实体类中使用了Java 8的`LocalDateTime`类型来表示日期时间,并遇到了`SQLFeatureNotSupportedException`的异常,这通常是因为数据库驱动不支持直接将`LocalDateTime`...
MySQL 字段类型说明 MySQL 是一个功能强大且广泛使用的关系型数据库管理系统,它支持大量的列类型,可以被分为数字类型、日期和时间类型以及字符串(字符)类型。本节对 MySQL 字段类型进行了详细的说明,包括每个...
### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...
此外,MySQL允许在一个表中最多定义两个自动更新的`TIMESTAMP`字段,其中一个可以设置为`CURRENT_TIMESTAMP`作为默认值,另一个可以设置为`ON UPDATE CURRENT_TIMESTAMP`,这样在插入新行或更新行时,这两个字段都会...
在实体类中,你可以使用`LocalDate`、`LocalDateTime`或`Instant`等Java 8时间类型来映射这些数据库字段。 以下是一个简单的实体类示例: ```java import java.time.LocalDate; import java.time.LocalDateTime; ...
MySQL是一种广泛使用的开源关系型数据库管理系统,其字段类型是数据库设计中的重要概念,它决定了数据存储的格式和特性。理解并正确选择字段类型对于优化数据库性能、节省存储空间以及确保数据准确性至关重要。以下...
数据库的TIMESTAMP映射为java的LocalDateTime; 增加分页 增加多字段模糊查询getMultiseriateAndLike和getMultiseriateOrLike 增加中文字段特殊字符转化 详细请参考...
因此,joda-time-mybatis将所有日期设置为UTC(对于Joda Instants,不适用于Joda部分课程) 为了获得一致的结果,您的JVM应该 在UTC中运行(-Dtimezone = UTC) 与数据库服务器处于同一时区 例子 SQL(在这种情况...
MySQL数据库的列类型,也称为字段类型,是数据库设计中的关键元素,决定了数据的存储、处理和检索方式。这些类型大致分为数值类、字符串类和日期/时间类。以下是各类别的详细说明: **数值类数据列类型:** 1. **...