Java 确定JDBC中executeBatch()的故障

Java 确定JDBC中executeBatch()的故障,java,jdbc,batch-updates,Java,Jdbc,Batch Updates,我使用以下代码将数据插入表中 test_conn.setAutoCommit(false); stmt = test_conn.prepareStatement("INSERT INTO ..."); while(RSet.next()){ for(int i = 1; i <= columnCount; i++){ stmt.setString(i, RSet.getString(i)); } stmt.addBatch(); } stmt.execu

我使用以下代码将数据插入表中

test_conn.setAutoCommit(false);
stmt = test_conn.prepareStatement("INSERT INTO ...");

while(RSet.next()){
   for(int i = 1; i <= columnCount; i++){
       stmt.setString(i, RSet.getString(i));
   }
   stmt.addBatch();
}

stmt.executeBatch();
test_conn.commit();
测试连接设置自动提交(假);
stmt=测试连接准备声明(“插入…”);
while(RSet.next()){

对于(inti=1;i您必须
尝试捕获
stmt.executeBatch()
调用并检查异常中的详细信息。当出现第一个错误时,批处理执行将停止。

是的。我知道当批处理失败时,批处理将停止。我想知道,如何获取失败的记录。我想你不能-唯一的一件事是希望exceptin将从RDBMS中获得一些指导信息。这就像你将执行多个le SQLs以;分隔。如果出现错误,它将不会显示失败的语句。@codeFreak
stmt.executeBatch();
将返回一个整数数组,其中包含每个记录的插入状态。对于第i个元素,值
-3
表示
错误
=0
表示
确定
状态。您可以保留一个单独的数组来维护insert语句(
stmt.toString()
)然后与结果数组进行比较,以找到失败的插入查询。@ArjunSK,请给出此答案的来源好吗?当我们运行exexuteBatch进行更新查询时,元素为-3的错误场景是否也适用?@AkilaAmarasinghe int array values explaution