数据库 datetime 类型默认值引起 jdbc 报错技术
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,
暂无