1

我正在使用 PreparedStatement addBatch。

当行插入失败时,我应该如何处理这种情况?

例如,假设在要插入的1000 行中,第100 行插入失败,程序突然结束,没有插入剩余的行(即从第100 行到第1000 行)。

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

4

1 回答 1

3

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

于 2012-11-11T09:16:45.027 回答