gpt4 book ai didi

java - jdbc insert using batch 获取成功插入的行数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:38 26 4
gpt4 key购买 nike

我正在尝试为任何 jdbc 获取正确数量的插入行(使用批处理和准备好的语句)。现在我知道了两种方法:

  1. PreparedStatement.getUpdateCount() - 但对于批处理,即使每一行都被拒绝,此方法也会为每个批处理返回 1。

  2. int[] 作为 PreparedStatement.executeBatch() 的结果并检查每个元素是否大于 0。但是对于某些 jdbc(例如 Oracle ) 对于每条记录,此数组可以包含 -2。

那么,有没有办法知道插入成功的行数呢?

最佳答案

关于批量更新计数:

您的第二个选择是要走的路,但正如您已经观察到的那样,一些 JDBC 驱动程序并不费心去完全实现此功能。

-2 = Statement.SUCCESS_NO_INFO 的更新计数表示命令已成功处理,但受影响的行数未知。

(-3 = Statement.EXECUTE_FAILED的值表示命令未能成功执行,只有在命令失败后驱动程序继续处理命令时才会出现)。

如果您只有简单的 INSERT,那么您可以将 -2 重新解释为成功的 +1 插入记录。 (如果批量更新抛出 BatchUpdateException,您将需要评估异常中的更新计数)。否则对于其他情况,例如 INSERT FROM SELECT,您似乎运气不好或者需要依赖特定于驱动程序的 API。

关于java - jdbc insert using batch 获取成功插入的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44021200/

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