Mysql 默认的事务隔离级别 Repeatable read(可重复读)
TransactionIsolationLevel
org.apache.ibatis.session.TransactionIsolationLevel
java.sql.Connection
public enum TransactionIsolationLevel {
NONE(Connection.TRANSACTION_NONE),
READ_COMMITTED(Connection.TRANSACTION_READ_COMMITTED),
READ_UNCOMMITTED(Connection.TRANSACTION_READ_UNCOMMITTED),
REPEATABLE_READ(Connection.TRANSACTION_REPEATABLE_READ),
SERIALIZABLE(Connection.TRANSACTION_SERIALIZABLE);
private final int level;
TransactionIsolationLevel(int level) {
this.level = level;
}
public int getLevel() {
return level;
}
}
表示不支持事务
TRANSACTION_NONE
TRANSACTION_READ_UNCOMMITTED
一个常量,指示可能发生脏读取、不可重复读取和幻象读取。此级别允许一个事务更改的行在提交该行中的任何更改之前被另一个事务读取(“脏读取”)。如果回滚任何更改,则第二个事务将检索到无效行。
TRANSACTION_READ_COMMITTED
一个常量,表示防止了脏读;可能发生不可重复的读取和幻象读取。此级别仅禁止事务读取其中包含未提交更改的行。
TRANSACTION_REPEATABLE_READ
一个常量,指示防止脏读取和不可重复读取;
可能发生幻象读取。该级别禁止事务读取未提交更改的行,
也禁止一个事务读取行,第二个事务更改行,第一个事务重新读取行,在第二次读取时获得不同的值(“不可重复读取”)。
TRANSACTION_SERIALIZABLE 可串行化的
一个常量,指示防止脏读取、不可重复读取和幻象读取。此级别包括TRANSACTION_REPEATABLE_READ中的禁止,并进一步禁止以下情况:一个事务读取满足where条件的所有行,第二个事务插入满足该where条件的行,第一个事务针对相同条件重新读取,检索第二次读取中的附加“幻象”行。