You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDBC执行UPDATE语句无报错但未更新数据库是什么原因?

问题原因分析
  • 最核心的原因是updateAppointment方法的SQL参数不完整:你的更新语句末尾有WHERE Appointment_ID = ?的条件,需要第10个参数传入要更新的预约ID,但你的方法入参没有包含Appointment_ID字段,PreparedStatement也只赋值了前9个参数,第10个占位符没有对应赋值,最终执行的SQL等价于WHERE Appointment_ID = NULL,无法匹配到任何数据库记录,自然不会触发更新,且SQL本身语法合法所以不会抛出异常。
  • 排查修复方案:
    1. 给updateAppointment方法新增入参int appointmentID,在设置完contactID的赋值逻辑后,补充ps.setInt(10, appointmentID);,调用方法时传入对应要修改的预约ID即可。
    2. 可以把ps.execute()替换为int affectedRows = ps.executeUpdate(),打印affectedRows的值,如果为0就说明没有匹配到记录,方便快速定位参数匹配问题。
    3. 若补充参数后仍未更新,可检查传入的Appointment_ID是否在数据库中真实存在,以及JDBC连接是否开启了自动提交(若关闭了自动提交需手动执行connection.commit()才能把更新持久化到数据库)。

内容的提问来源于stack exchange,提问作者lostInCodeKeys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:06:08