package org.theonefx.wcframework.transaction.annotation; import java.sql.Connection; /** * @Package org.theonefx.wcframework.transaction.annotation * @ClassName: Isolation * @author 陈曦 * @date 2010-10-15 11:22:25 * @Description: 事务的隔离级别 */ public enum Isolation { // 默认的隔离级别 DEFAULT(-1), // 允许读取尚未提交的更改,可能导致脏读、幻读或不可重复读 READ_UNCOMMITTED(Connection.TRANSACTION_READ_UNCOMMITTED), // 允许从已提交的并发事务读取,可以避免脏读,但是幻读和不可重复读可能会发生 READ_COMMITTED(Connection.TRANSACTION_READ_COMMITTED), // 对相同的字段多次读取是一致的,除非数据库当前事务本身改变。 // 可防止脏读和不可重复读,但幻读仍可能发生 REPEATABLE_READ(Connection.TRANSACTION_REPEATABLE_READ), // 完全服从ACID的隔离级别,确保不发生脏读、不可重复读和幻读。 // 在所有的隔离级别中也是最慢的,他完全锁定了当前事务所涉及的数据表来完成 SERIALIZABLE(Connection.TRANSACTION_SERIALIZABLE); private final int value; Isolation(int value) { this.value = value; } public int value() { return this.value; } }