我的spring 事务管理学习笔记(一)
2017-03-27 19:54
190 查看
1、事务的基本特性:
原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性:一致性指事务前后数据的完整性必须保持一致。
隔离性:隔离性指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。
持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。
2、不考虑隔离性,会引发安全问题:
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。
幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。
3、事务的隔离级别(Isolation)(org.springframework.transaction.annotation.Isolation)
MySQL默认采用REPEATABLE_READ隔离级别。
4、事务的传播行为(Propagation)(org.springframework.transaction.annotation.Propagation)
1.一个事务的方法A,一个标记事务传播属性为Required的方法B,B如果在方法A内,则方法B的事务只能用作回滚并且跟方法A是同一个事务
2.标记事务传播属性为RequiresNew的方法B,B如果在方法A内,则方法B的事务完全独立于方法A的事务,方法B的事务具有提交以及回滚性,即使方法A之后有回滚都不 影响方法B的事务
3.标记事务传播属性为Nested的方法B,B如果在方法A内,则方法B的事务则具有多个保存点的回滚,但这不影响A的事务的进行,这个设置通常映射到JDBC保存点,所以 只在jdbc的事务中有效。
关于事务的传播行为,详情见http://blog.csdn.net/it_man/article/details/5074371
5、spring的事务管理高层抽象主要包括3个接口
(1)、PlatformTransactionManager 事务管理器
(2)、TransactionDefinition 事务定义信息(隔离级别,传播行为,超时,只读)
(3)、TransactionStatus 事务具体运行状态
原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性:一致性指事务前后数据的完整性必须保持一致。
隔离性:隔离性指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。
持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。
2、不考虑隔离性,会引发安全问题:
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。
幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。
3、事务的隔离级别(Isolation)(org.springframework.transaction.annotation.Isolation)
MySQL默认采用REPEATABLE_READ隔离级别。
4、事务的传播行为(Propagation)(org.springframework.transaction.annotation.Propagation)
1.一个事务的方法A,一个标记事务传播属性为Required的方法B,B如果在方法A内,则方法B的事务只能用作回滚并且跟方法A是同一个事务
2.标记事务传播属性为RequiresNew的方法B,B如果在方法A内,则方法B的事务完全独立于方法A的事务,方法B的事务具有提交以及回滚性,即使方法A之后有回滚都不 影响方法B的事务
3.标记事务传播属性为Nested的方法B,B如果在方法A内,则方法B的事务则具有多个保存点的回滚,但这不影响A的事务的进行,这个设置通常映射到JDBC保存点,所以 只在jdbc的事务中有效。
关于事务的传播行为,详情见http://blog.csdn.net/it_man/article/details/5074371
5、spring的事务管理高层抽象主要包括3个接口
(1)、PlatformTransactionManager 事务管理器
(2)、TransactionDefinition 事务定义信息(隔离级别,传播行为,超时,只读)
(3)、TransactionStatus 事务具体运行状态
相关文章推荐
- Spring学习笔记(17)----使用Spring注解方式管理事务
- Spring学习笔记 事务管理
- Spring学习笔记五:Spring进行事务管理
- spring学习笔记(一)事务的管理和传播特性
- Beginning Spring学习笔记——第6章(三)使用Spring进行编程式事务管理
- Spring 学习笔记 事务管理 解决购买彩票问题
- spring学习笔记8——事务管理
- SpringMVC + Spring + MyBatis 学习笔记:SpringMVC和Spring一同工作的时候,AOP事务管理不起作用的解决方法
- Spring学习笔记(18)----使用Spring配置文件实现事务管理
- Spring框架学习笔记(10)——Spring中的事务管理
- Spring学习笔记(九)-----事务管理(宣告式事务管理)
- 学习笔记:spring与hibernate整合(采用aop来管理事务来实现声明式事务)
- spring学习笔记:spring事务管理
- Spring学习笔记----事务管理
- Spring 注解方式进行事务管理的用法介绍详解【Java学习笔记】
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
- Java框架spring 学习笔记(十九):事务管理(注解管理)
- Beginning Spring学习笔记——第6章(一)Spring事务管理基础
- Spring in Action 学习笔记—第五章事务管理
- 学习笔记---------------------spring2.5+jdbc(jdbctemplate)+事务管理