내 프로그램을 실행할 때마다 JDBC 배치 삽입 (한번에 약 1000 행 씩 삽입)을 수행하고 있습니다. 하지만 일부 레코드에 의해 발생한 예외를 제대로 처리 할 수 없습니다.JDBC 일괄 삽입 예외 처리
데이터가 유효하지 않거나 일부 값의 크기가 열 크기를 초과하여 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 번째 너무 큰 1000 번째 레코드에서만 프로세스를 트리거하려고합니다. 이 작업을 수행 할 수있는 방법이 있습니까? 이후 예외를 던진 레코드에서 프로세스를 다시 시작할 수 있습니까? 이것을 달성하는 방법?
코드가 있습니까? 내 원래 게시물에 – Alfabravo