spring事物的隔离级别

若是想了解spring 的隔离级别,首先要明白几个概念 spring

脏读:一事务对数据进行了增删改,但未提交,另外一事务能够读取到未提交的数据。若是第一个事务这时候回滚了,那么第二个事务就读到了脏数据。数据库

不可重复读:一个事务中发生了两次读操做,第一次读操做和第二次操做之间,另一个事务对数据进行了修改,这时候两次读取的数据是不一致的。事务

幻读:第一个事务对必定范围的数据进行批量修改,第二个事务在这个范围增长一条数据,这时候第一个事务就会丢失对新增数据的修改。it

其实我一直喜欢 从系统级别了解一下事物实现的原理,但愿有识之士可以帮忙解答?io

数据库自己的隔离级别table

隔离级别     隔离级别的值     致使的问题原理

Read-Uncommitted     0     致使脏读数据

Read-Committed     1     避免脏读,容许不可重复读和幻读tab

Repeatable-Read     2     避免脏读,不可重复读,容许幻读co

Serializable     3     串行化读,事务只能一

 

Spring中的隔离级别

常量     解释

ISOLATION_DEFAULT     这是个 PlatfromTransactionManager 默认的隔离级别,使用数据库默认的事务隔离级别。另外四个与 JDBC 的隔离级别相对应。

ISOLATION_READ_UNCOMMITTED     这是事务最低的隔离级别,它充许另一个事务能够看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。

ISOLATION_READ_COMMITTED     保证一个事务修改的数据提交后才能被另一个事务读取。另一个事务不能读取该事务未提交的数据。

ISOLATION_REPEATABLE_READ     这种事务隔离级别能够防止脏读,不可重复读。可是可能出现幻像读。

ISOLATION_SERIALIZABLE     这是花费最高代价可是最可靠的事务隔离级别。事务被处理为顺序执行。

相关文章
相关标签/搜索