gpt4 book ai didi

Java ExecuteUpdate 失败但未抛出异常

转载 作者:行者123 更新时间:2023-11-29 07:50:19 25 4
gpt4 key购买 nike

今天我遇到了这样的情况:程序启动,正常运行,显示数据已正确输入数据库,但没有执行。我再次运行脚本,它运行良好,但有趣的是它没有抛出异常,尽管它未能插入数据。

是否存在 Statement.executeUpdate(insertQuery) 可以在不抛出异常的情况下失败的情况?

最佳答案

虽然失败不会在不抛出异常的情况下发生,但是一个命令可以完成并产生不符合您预期的效果,但实际上并没有失败。

例如,如果您发出更新行的命令,但表中不存在您为更新指定的 ID,该命令在技术上会成功,但从您的角度来看,更新会失败,因为没有行被更改:

PreparedStatement upd = con.prepareStatement(
"UPDATE mytable SET complete=1 WHERE id=?"
);
upd.setInt(1, 12345); // If 12345 does not exist...
upd.executeUpdate(); // ...this update does not change anything

要检测这种情况,您可以检查命令更新了多少行,并在更新数为零时执行某些操作:

int changed = upd.executeUpdate();
if (changed != 1) {
// Something didn't go according to our expectations
}

关于Java ExecuteUpdate 失败但未抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21683031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com