有没有办法从executeBatch
获取所有错误?
我的意思是,如果我要从一批100个中获得10个错误,我怎么能在executeBatch
执行中知道所有错误?
答案 0 :(得分:1)
第一个错误将抛出BatchUpdateException
,这将停止批处理。
您可以在文档中看到
批量更新操作期间发生错误时抛出
SQLException
的子类。除了SQLException
提供的信息之外,BatchUpdateException
还为批量更新期间成功执行的所有命令提供更新计数,即在错误发生之前执行的所有命令即可。更新计数数组中元素的顺序对应于命令添加到批处理的顺序。
所以批次将停在那里。在故障之前的每个先前的“查询”将被执行(按顺序)。其余的将被忽略。
您可以随时重新创建批次,因为您在异常中有成功的执行计数,以包含批次的其余部分
编辑:
之前的陈述部分错误。该文档还声明可以执行批处理的其余部分,具体取决于使用的驱动程序
批量更新中的命令无法正常执行且抛出
BatchUpdateException
后,驱动程序可能会继续继续来处理批处理中的其余命令。
您可以找到错误的陈述(以测试确认)
在驱动程序继续处理命令的情况下,任何失败命令的数组元素为
Statement.EXECUTE_FAILED
。