LMLPHP后院

数据库 datetime 类型默认值引起 jdbc 报错技术

maybe yes 发表于 2017-09-18 09:35

MySQL 数据库中某些字段类型设置为 datetime,如果不允许为空且默认值设置为 '0000-00-00 00:00:00',Java Bean 中 Date 类型转换会出现如下错误

jdbc.spi.SqlExceptionHelper   : Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

解决方案,参考如下 jdbc 配置,加上 zeroDateTimeBehavior=convertToNull 解决问题

spring.datasource.url=jdbc:mysql://192.168.1.122:3306/db_name?useSSL=true&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull

其实主要问题应该MySQL 建表的时候默认值没有设置好,这种情况一般都是字段不允许为 null,默认值为 '0000-00-00 00:00:00' 导致。如果将表中的 datetime 类型字段设置允许为空即可。一般 datetime 类型的字段也没有必要不允许为 null。如下:

`update_time` datetime DEFAULT NULL,

本篇文章,希望给大家带来帮助。

2024-04-25 08:53:15 1714006395 0.009724