有没有办法从executeBatch获取所有错误?

时间:2017-01-18 12:21:55

标签: java sql jdbc

有没有办法从executeBatch获取所有错误?

我的意思是,如果我要从一批100个中获得10个错误,我怎么能在executeBatch执行中知道所有错误?

1 个答案:

答案 0 :(得分:1)

第一个错误将抛出BatchUpdateException,这将停止批处理。

您可以在文档中看到

  

批量更新操作期间发生错误时抛出SQLException的子类。除了SQLException提供的信息之外,BatchUpdateException还为批量更新期间成功执行的所有命令提供更新计数,即在错误发生之前执行的所有命令即可。更新计数数组中元素的顺序对应于命令添加到批处理的顺序。

所以批次将停在那里。在故障之前的每个先前的“查询”将被执行(按顺序)。其余的将被忽略。

您可以随时重新创建批次,因为您在异常中有成功的执行计数,以包含批次的其余部分

编辑:

之前的陈述部分错误。该文档还声明可以执行批处理的其余部分,具体取决于使用的驱动程序

  

批量更新中的命令无法正常执行且抛出BatchUpdateException后,驱动程序可能会继续继续来处理批处理中的其余命令。

您可以找到错误的陈述(以测试确认)

  

在驱动程序继续处理命令的情况下,任何失败命令的数组元素为Statement.EXECUTE_FAILED