mysql NullPointerException at com.mysql.jdbc.PreparedStatement.setTimestamp(PreparedStatement.java

今天恶心死了 用到了mysql-5.1.47版本的架包 该包邮BUG
1.问题描述
遗留项目中用到了 spring jdbctemplate ,数据库使用的 mysql 5.7,驱动包使用 mysql 5.1.47 版本的 connector jar 包,在用 jdbctemplate 执行update语句(含有数据库字段 datetime 类型的更新),有时候会遇到 更新数据库记录的时间字段时,报空指针。

DEBUG o.s.jdbc.core.JdbcTemplate - Executing prepared SQL statement [update msm_process_instance set curr_activity_id=?,curr_activity_name=?,curr_user_Id=?,curr_user_name=?,curr_form_key=?,status_index=?,status_name=?,update_time=? where id=?]
java.lang.NullPointerException
at com.mysql.jdbc.PreparedStatement.setTimestamp(PreparedStatement.java:4241)
at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
————————————————
版权声明:本文为CSDN博主「cqwshzj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012688704/article/details/95082905
跟踪源代码发现报错的代码是 mysql 的connector jar包中的代码,排除传入参数的可能原因后,怀疑是 connector jar包的问题。

2.解决方案
参考官方的bug,发现是 5.1.47版本的驱动包有 bug,解决方案是需要将jar包回退到 5.1.46 版本。

mysql 官方的bug列表

修改 pom.xml 中的 mysql 驱动包版本为 5.1.46
在这里插入图片描述

完成的异常信息如下所示。报错位于 mysql jar包中的源码,主要是 setTimestamp 方法报错 空指针。
————————————————
版权声明:本文为CSDN博主「cqwshzj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012688704/article/details/95082905
来自:https://blog.csdn.net/u012688704/article/details/95082905

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值