java.sql.SQLException: Zero date value prohibited 报错分析

本文描述了在使用iReview复习词条时遇到的MyBatis后台BUG,具体表现为尝试获取'last_datetime'字段时触发java.sql.SQLException:Zerodatevalueprohibited错误。通过分析日志和数据库数据,发现部分词条的'last_datetime'值被错误地设置为'0000-00-0000-00-00',修复后系统恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在使用 iReview 复习词条时,发现 review 页面始终不会跳到下一个词条,应该是前台或者后台出现 BUG 了。

查看浏览器控制台,看到 500 报错,那应该是后台的问题。

登录后台,先查看 tomcat 日志

cd usr/local/tomcat/logs
cat catalina.out

果然有报错,如下:

 Forwarding to error page from request [/api/items/libraries/8] due to exception [Error attempting to get column 'last_datetime' 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]

第一次遇到 java.sql.SQLException: Zero date value prohibited 的报错,那究竟是什么回事?

从报错信息看,应该是 MyBatis 取字段 'last_datetime' 数据的时候触发的。

经过网上搜索,了解到前人发现这问题是由于时间字段值设成 '0000-00-00 00-00-00' 。

然后赶紧查看 MySQL 的数据,果然发现有部分词条的 'last_datetime' 值设成了 '0000-00-00 00-00-00' ,改过来后运行正常。

 

转载于:https://www.cnblogs.com/lipohong/p/10727503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值