Я выполняю пакетную вставку JDBC (вставляя по 1000 строк примерно за раз) каждый раз, когда выполняется моя программа. Но я не могу обработать исключение, созданное некоторыми из записей.
Предположим, 100-я запись из 1000 записей выбрасывает исключение из-за недопустимых данных или размера некоторого значения, превышающего размер столбца. После возникновения исключения оставшиеся записи не встают и программа прерывается между ними.
Я хочу, даже если 100-я запись бросает исключение, остальные вставки должны происходить, как обычно, до окончания моей программы.
Я не могу понять, как этого добиться. Пожалуйста, предложите.
EDIT:
Вот пример кода, который я использую в своем приложении для пакетной вставки. Предположим, что результирующий набор имеет около 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-й слишком 1000-й записи. Есть ли способ сделать это, чтобы я мог перезапустить процесс из записи, которая до конца закрывала исключение вперед? Как достичь этого?