Spring事务的5种隔离级别(实际上只有4种)

1.在并发的环境中,可能出现下面三种情况

       (1) Dirty Reads 脏读 

      (2)Non-Repeatable Reads 不可重复读  

 

      (3) Phantom Reads 幻像读  

2.针对上面三种现象,Spring事务划分了事务的隔离级别 

                     隔离级别                                可能出现的现象
DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应 
READ_UNCOMMITTED (读未提交)  这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。 
READ_COMMITTED (读已提交)   保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。 
REPEATABLE_READ (可重复读)  这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了不可重复读 
SERIALIZABLE(串行化)  这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。 

猜你喜欢

转载自blog.csdn.net/lihongtai/article/details/84764540