Java, Mysql, 原创Cola, Mapper, MySql, Spring Boot
解决Java (Spring boot) 读取数据库字段,datetime 格式为null,抛出异常 Zero date value prohibited
- by chenxue4076
- 4 years ago
使用 Mapper 读取数据库数据时,因时间字段为 null, Java设置该字段为 Instant, 在Mapper转为 List<User>时出了错误,如果使用 List<Object>则不抛异常。
但实际情况我们还是希望使用原数据对象,导致抛出下面错误
Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLException: Zero date value prohibited
; Zero date value prohibited; nested exception is java.sql.SQLException: Zero date value prohibited
解决方法:
数据库连接语句添加上
zeroDateTimeBehavior=CONVERT_TO_NULL
例如:
jdbc:mysql://localhost:3306/db_test?serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL
参考文档:https://blog.csdn.net/weixin_39731963/article/details/80392155
里面还介绍了 zeroDateTimeBehavior的几种配置
exception(默认),CONVERT_TO_NULL, round
CONVERT_TO_NULL 是把 null 转成 0000-00-00 00:00:00
rand 是 把 null 转为 0001-01-01 14:00:00 (具体没有亲测 )
(2595)