// 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 |