事务管理!spring事务管理

事务管理(个人理解)

 事务的概念以及其特性:概念-单个逻辑工作单元执行的一系列操作,要么都执行,要么都不执行。

                                         特性(ACID):原子性,事务的操作要么都执行,要么都不执行,作为一个整体;

                                                             一致性,事务开始之前到结束之后,数据库的完整性约束不会被破坏;(有空可以去详细了解)

                                                            隔离性,并发事务之间互相影响的程度,比如一个事务会不会读取到另一个未提交的事务修改的数据

                                                            持久性,在事务完成之后提交修改的数据会一直保持在数据库之中,不会被回滚。

出现读的问题(两事务间):脏读(select),不可重复读(update),幻读(insert);---------------------括号里的单词是对其概念的摘要

隔离级别:read uncommited 读未提交 上面三个问题都不能解决

read commited 可解决脏读问题

repeataable_able 可重复读 -----解决脏读,不可重复读

serializable  串行化-------三者都解决了

spring 的事务管理

在spring中怎么实现事务管理呢。设计到几个重要的类:platformTransactionMannger(顶层接口),TransactionDefition,TransactionStatus.(后面两个类继承或实现了顶层接口)

一、platformTransactionMannger(事物管理平台)是spring框架给封装了JDBC的框架(IBatis,Hibernate等)提供的接口,IBatis和Hibernate通过实现此接口,进而去实现spring事物管理。

      platformTransactionMannger<------AbstractPlatformTransactionMannger才是真正提供JDBC封装框架的接口。IBatis对应的是:DataSourceTransactionMannger;Hibernate对应的是                                                 HibernateTransactionMannger;还有JtaTransactionMannger,JpaTransactionMannger(分布式事务)不怎么了解(后期学习)。

二、TransactionDefition(事物定义信息):此类主要包含隔离级别,传播行为(常见)(7种),超时信息,是否只读(常见)。

          传播行为---七种(A方法嵌套在B方法内):propagtion-requried  :若A方法有事务,则B就使用A的事务。若没有则创建一个事务。

                                                               propagtion-support:  B有事务则以事务的模式执行,若B没有事务,则非事务执行。

                                                               propagtion-mandatory:支持当前事务,若没有,则报异常。

                                                               propagtion-requries-new:      新建事务,如果A存在事务,把A事务挂起。

                                                                 propagtion-not-support:    以非事务的形式执行,若有事务,则把事务挂起;

                                                                  propagtion-nerve:以非事务方式执行,如果当前存在事务,则抛出异常.

                                                               propagtion-nested:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

三、TransactionStatus:事务状态-----用于记录事物管理中状态的对象。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值