替代jdbc中的executeBatch具有不同的故障处理?

时间:2011-11-17 20:50:24

标签: jdbc

如果其中一个执行失败,则executeBatch update不会继续执行其余命令。无论如何还是executeBatch的替代方法,其中即使命令执行失败,仍然会成功执行其余命令。不使用executeUpdate,因为它需要花费大量时间并逐个执行查询。

1 个答案:

答案 0 :(得分:2)

文档说明了这一点:

批量更新操作期间发生错误时抛出的异常。此外 SQLException提供的信息,BatchUpdateException提供更新 计算在批量更新期间成功执行的所有命令,即all 在错误发生之前执行的命令。数组中元素的顺序 更新计数对应于将命令添加到批处理的顺序。 批量更新中的命令无法正常执行且BatchUpdateException为 抛出,驱动程序可能会或可能不会继续处理其中的其余命令 批处理。如果驱动程序在失败后继续处理,则该方法返回该数组 BatchUpdateException.getUpdateCounts将为每个命令提供一个元素 批处理而不是仅在错误之前成功执行的命令的元素。 在驱动程序继续处理命令的情况下,任何命令的数组元素 失败的是Statement.EXECUTE_FAILED。

据我了解,这取决于您使用的jdbc-driver。

可能更好的解决方案是找到问题的原因并修复它?