数据源配置报错

时间:2024-03-16 12:44:50

There was an unexpected error (type=Internal Server Error, status=500).
Error attempting to get column ‘PsdWrongTime’ from result set. Cause: java.sql.SQLException: Value ‘0’ can not be represented as java.sql.Timestamp ; Value ‘0’ can not be represented as java.sql.Timestamp; nested exception is java.sql.SQLException: Value ‘0’ can not be represented as java.sql.Timestamp
org.springframework.dao.TransientDataAccessResourceException: Error attempting to get column ‘PsdWrongTime’ from result set. Cause: java.sql.SQLException: Value ‘0’ can not be represented as java.sql.Timestamp
今天做项目刚搭好mybatis和springboot的框架运行测试了一下发现报了这个错
数据源配置报错
刚开始发现这个错以为是框架搭错了,找了一圈也没找得到,最后靠关键字搜搜是因为数据库的哪个字段的问题然后在项目需要配置一下
数据源配置报错
需要再配置数据源的时候加上这个zeroDateTimeBehavior=convertToNull
但是这个究竟是有什么作用?
JAVA连接MySQL数据库,在操作各项值均为为0(或者有0不正确的数据??)的timestamp等(日期为0000-00-00。。。。)类型时不能正确处理,而是默认抛出一个异常,比如所见的:java.sql.SQLException: Cannot convert value ‘0000-00-00 00:00:00’ from column XX to TIMESTAMP。
举个实际的栗子,你的方法中要传入来自页面的日期参数值,
按照正常的做法,比如日期值为2020-02-28,但是由于误操作,传入了0000-00-00,并没有设置正确的数据,那么这时默认抛出java.sql.SQLException异常
(如果设定这一项 zero datetime behavior(英文字面意思为“0datetime反应”)=
convert to null(英文字面意思为“转化为null”)
,把日期转换为null代替异常处理);
数据源配置报错
最后就发现可以ok执行了。