打印失败的行PreparedStatement addBatch

时间:2012-11-11 08:41:54

标签: java sql exception jdbc prepared-statement

我正在使用PreparedStatement addBatch。

如何处理无法插入行的方案?

例如,假设要插入1000行,第100行无法插入,程序突然结束而不插入其余行(即从第100行到第1000行)。

我想打印失败行,以便我能够检查问题。

1 个答案:

答案 0 :(得分:3)

ExecuteBatch方法没有关于错误处理和返回值的标准行为,它取决于您使用的DBMS和JDBC驱动程序。 例如,Oracle驱动程序在BatchUpdateException数组中返回一个数组,其中包含每个成功记录的元素。数组的索引与添加到语句的批次的索引对齐,这意味着最大的数组索引表示已成功插入的最后一个批记录。 但这对于您的特定DMBS /驱动程序组合无效,因此检查它的唯一方法是使用调试器,模拟错误,在异常捕获代码处设置断点并查看异常对象。