spring事务管理总结

事务的特性:ACID数据库

Atomic:原子性事务

Consistency:一致性it

Isolation:隔离性io

Durability:持久性数据

-------------------------------------------------------查询

几个相关概念:异常

脏读:一个事务读到另外一个事务未提交的数据。底层

幻读:一个事务两次读取的数据个数不一样(另外一个事务添加了新的数据)。ab

不可重复读:一个事务两次读取的数据内容不一样(另外一个事务修改了数据)。

--------------------------------------------------------

事务的隔离级别

1. DEFAULT:默认隔离级别,使用底层数据库的默认隔离级别

2.READ_UNCOMMITTED:读未提交,读到另外事务未提交的数据,若是别的事务出现回滚,则此事务会读到无效的数据,它会致使脏读、不可重复读、幻读。

3.READ_COMMITTED:读已提交,能够避免脏读,可是没法避免不可重复读和幻读。

4.REPEATABLE_READ:可重复读,此级别禁止一个事务去读一个包含未提交的修改的行,而且禁止一个事务读一行,另外一个事务修改此行。能够避免脏读和不可重复读,可是不可避免幻读。

5.SERIALIZABLE:此级别包含REPEATABLE_READ中禁止的内容,而且禁止一个事务读到知足where条件的数据后,另外一个事务添加的数据知足第一个事务的查询条件。因此此级别能够避免脏读、幻读和不可重复读。

-------------------------------------------------------

事务的传播行为:

1.REQUIRED:支持当前事务,若是当前不存在事务则新建事务。

2.SUPPORTS:支持当前事务,若是当前不存在事务则以无事务的方式执行。

3.MANDATORY:支持当前事务,若是当前不存在事务则抛出异常。

4.REQUIRES_NEW:建立一个新的事务,若是当前存在事务则挂起当前事务。

5.NOT_SUPPORTED:以非事务的方式执行,若是当前存在事务则挂起当前事务。

6.NEVER:以非事务的方式执行,若是当前存在事务则抛出异常。

7.NESTED:若是当前存在事务则在一个嵌套的事务中执行。

相关文章
相关标签/搜索