BatchUpdateException

BatchUpdateException (일괄 갱신 예외)

일괄 갱신(batch update) 작업 중 오류가 발생했을 때 던져지는 SQLException의 하위 클래스입니다. SQLException이 제공하는 정보에 더해, 일괄 갱신 중 오류가 발생하기 전에 성공적으로 실행된 모든 명령의 갱신 횟수(update count)를 제공해요.

출처: Java API Reference

본문

갱신 횟수 배열의 요소 순서는 명령이 일괄 처리에 추가된 순서와 일치합니다. 일괄 갱신의 명령이 제대로 실행되지 않아 BatchUpdateException이 던져진 후에도, 드라이버는 일괄 처리의 나머지 명령을 계속 처리할 수도 있고 그렇지 않을 수도 있어요. 계속 처리한다면 getUpdateCounts가 반환하는 배열은 오류 전에 성공한 명령만이 아니라 일괄 처리의 모든 명령에 대한 요소를 가집니다. 이 경우 실패한 명령의 배열 요소는 Statement.EXECUTE_FAILED입니다.

JDBC 드라이버 구현은 갱신 횟수에 int[]를 쓰는 생성자 대신 BatchUpdateException(String reason, String SQLState, int vendorCode, long[] updateCounts, Throwable cause) 생성자를 사용해 오버플로우 가능성을 피해야 합니다. Statement.executeLargeBatch가 호출되면 정수 갱신 횟수의 오버플로우를 피하기 위해 getUpdateCounts 대신 getLargeUpdateCounts를 호출하는 것이 좋아요.

대표적인 메서드

public int[] getUpdateCounts()
public long[] getLargeUpdateCounts()

더 알아보기 (Learn more)

Java 공식 API