JDBC批量插入异常处理以了解特定的失败记录

时间:2018-05-28 06:56:13

标签: jdbc batch-processing

我想读取一个txt文件,该文件在java程序中有oracle insert语句并作为批处理执行,如果批处理中的任何记录失败,我如何才能知道特定的insert语句只是失败了。< / p>

对于Ex.if我在文件中有1000条记录,659条记录在插入时失败, 我如何才能知道在执行dbb update时失败的659记录。是否有任何其他过程可以让我知道。

1 个答案:

答案 0 :(得分:2)

有两种方法可以处理上述情况,无论是检入Java代码还是编写过程

  1. Java代码:这将加载所有内容或回滚整个批处理。

    updateResult = preparedStatement.executeBatch();             checkSuccessfulUpdates(updateResult);

    public static void checkSuccessfulUpdates(int [] updateCounts)抛出异常{     for(int i:updateCounts){          if(i == Statement.EXECUTE_FAILED){             抛出新的异常(“并非所有行都已更新。回滚整批”);         }     } }

  2. 编写SQL过程

  3. 将自定义对象中的整个数据发送到过程,按记录1加1,在循环内处理异常,错误加载临时表中的失败记录。