public enum TransactionLevel extends Enum<TransactionLevel>
脏读(Dirty Read):
一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据
不可重复读(Non Repeatable Read):
在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致
幻读(Phantom Read):
在一个事务中,第一次查询某条记录,发现没有,但是,当试图更新这条不存在的记录时,竟然能成功,且可以再次读取同一条记录。
Connection.TRANSACTION_NONE
,
Connection.TRANSACTION_READ_UNCOMMITTED
,
Connection.TRANSACTION_READ_COMMITTED
,
Connection.TRANSACTION_REPEATABLE_READ
,
Connection.TRANSACTION_SERIALIZABLE
Enum Constant and Description |
---|
NONE
驱动不支持事务
|
READ_COMMITTED
禁止脏读,但允许不可重复读和幻读
此级别下,一个事务可能会遇到不可重复读(Non Repeatable Read)的问题。
|
READ_UNCOMMITTED
允许脏读、不可重复读和幻读
在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)
|
REPEATABLE_READ
禁止脏读和不可重复读,但允许幻读,MySQL的InnoDB引擎默认使用此隔离级别。
|
SERIALIZABLE
禁止脏读、不可重复读和幻读
虽然Serializable隔离级别下的事务具有最高的安全性,但是,由于事务是串行执行,所以效率会大大下降,应用程序的性能会急剧降低。
|
Modifier and Type | Method and Description |
---|---|
int |
getLevel()
获取数据库事务级别int值
|
static TransactionLevel |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static TransactionLevel[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final TransactionLevel NONE
public static final TransactionLevel READ_UNCOMMITTED
在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)
public static final TransactionLevel READ_COMMITTED
此级别下,一个事务可能会遇到不可重复读(Non Repeatable Read)的问题。
不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致。
public static final TransactionLevel REPEATABLE_READ
此级别下,一个事务可能会遇到幻读(Phantom Read)的问题。
幻读是指,在一个事务中,第一次查询某条记录,发现没有,但是,当试图更新这条不存在的记录时,可以成功,且可以再次读取同一条记录。
public static final TransactionLevel SERIALIZABLE
虽然Serializable隔离级别下的事务具有最高的安全性,但是,由于事务是串行执行,所以效率会大大下降,应用程序的性能会急剧降低。
public static TransactionLevel[] values()
for (TransactionLevel c : TransactionLevel.values()) System.out.println(c);
public static TransactionLevel valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic int getLevel()
Copyright © 2024. All rights reserved.