每次执行程序时,我正在执行一个JDBC批处理插入(每次插入1000行).但是我无法正确处理某些记录抛出的异常.
假设1000个记录中的第100条记录是由于数据无效或某个值的大小超过列大小而引起的异常.一旦发生异常,剩余的记录就不会被插入,程序之间就会失败.
我想要的是,即使第100条记录是抛出异常,剩下的插入应该像我的程序结束一样.
我无法理解如何实现这一点.请建议.
编辑:
这是我在我的应用程序中用于批量插入的示例代码.假设结果集约有1000条记录.
PreparedStatement ps = null;
while(rs.next()){
//Retrieve the value and set it to a Prepared statement
String name = rs.getString("Name");
int age = rs.getInt("Age");
ps.setInt(1, age);
ps.setString(2, name);
//Finally invoke addBatch
ps.addBatch();
}
//Finally call the executeBatch method
ps.executeBatch();
如果第100条记录引发异常,那么我只想从第100个记录触发进程.有没有办法做到这一点,以便我可以从记录中重新启动该过程,从而将异常从头开始直到结束为止.如何实现这一点?