1
2
3
4
5
6
7
// 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 |