我正在使用PreparedStatement addBatch。
如何处理无法插入行的方案?
例如,假设要插入1000行,第100行无法插入,程序突然结束而不插入其余行(即从第100行到第1000行)。
我想打印失败行,以便我能够检查问题。
答案 0 :(得分:3)
ExecuteBatch
方法没有关于错误处理和返回值的标准行为,它取决于您使用的DBMS和JDBC驱动程序。
例如,Oracle驱动程序在BatchUpdateException
数组中返回一个数组,其中包含每个成功记录的元素。数组的索引与添加到语句的批次的索引对齐,这意味着最大的数组索引表示已成功插入的最后一个批记录。
但这对于您的特定DMBS /驱动程序组合无效,因此检查它的唯一方法是使用调试器,模拟错误,在异常捕获代码处设置断点并查看异常对象。