Isolation level

// java.sql.Connection에 정의됨

int TRANSACTION_NONE = 0;
int TRANSACTION_READ_UNCOMMITTED = 1;
int TRANSACTION_READ_COMMITTED = 2;
int TRANSACTION_REPEATABLE_READ = 4;
int TRANSACTION_SERIALIZABLE = 8;

아래의 내용은 호박고구메의 게임 이야기 에서 일부 발췌. 각 레벨별 상수는 발췌한 블로그의 내용이 잘못되어 실제 java.sql.Connection 클래스에 정의된 상수로 대체(붉은글씨 )

차단 레벨

차단레벨 (Isolcation level) Dirty read Non-repeatable read Phantom read
TRANSACTION_READ_UNCOMMIT O O O
TRANSACTION_READ_COMMIT X O O
TRANSACTION_REPEATABLE_READ X X O(X)
TRANSACTION_SERIALIZABLE X X X

Connection 인터페이스에서 트랜잭션 차단 레벨과 관련된 필드

필드 설명
int TRANSACTION_NONE 트랜잭션이 지원되지 않음을 나타내는 상수 0
int TRANSACTION_READ_UNCOMMITTED dirty read, non-repeatable read와 phantom read가 발생할 수 있음을 나타내는 상수 1
int TRANSACTION_READ_COMMITTED dirty read는 금지되고, non-repeatable read와 phantom read는 발생할 수 있음을 나타내는 상수 2
int TRANSACTION_REPEATABLE_READ dirty read와 non-repeatable read는 금지되고, phantom read는 발생할 수 있음을 나타내는 상수 4
int TRANSACTION_SERIALIZABLE dirty read, non-repeatable read와 phantom read 모두 금지됨을 나타내는 상수 8