事务01(Spring 笔记011)

本文介绍了数据库事务的概念,强调了事务的原子性,通过一个示例展示了如何使用保存点进行事务管理。同时,提到了Spring框架中的事务管理接口,包括TransactionDefinition和TransactionStatus,并详细解释了TransactionDefinition中的传播行为及其应用场景。此外,还提及了事务管理所需的jar包。

事务与保存点

事务:事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
一组操作要么同时执行,要么同时不执行,如转账。

事务保存点的设置

在这里插入图片描述

Connection conn=null;
Savepoint savepoint =null;//保存点
try{
//1.获得链接
conn=~~~~;
//2.开启事务
conn.setAutoCommit(false);
A,B
savepoint = conn.setSavepoint();
C,D
//3.事务提交
conn.commit();
}catch(e){
    if(savepoint != null){
   conn.rollback(savepoint);//C,D异常
    conn.commit();//提交AB
    }else{conn.rollback();}
}

Spring事务管理的接口

事 务 管 理 的 接 口 { T r a n s a c t i o n D e f i n i t i o n ( 事 务 的 定 义 , 属 性 , 详 情 ) T r a n s a c t i o n S t a t u s ( 事 务 的 状 态 ) P l a t f o r m T r a n s a c t i o n M a n a g e ( 平 台 事 务 管 理 器 ) \mathrm{事务管理的接口}\left\{\begin{array}{l}TransactionDefinition(事务的定义,属性,详情)\\TransactionStatus(事务的状态)\\PlatformTransactionManage(平台事务管理器)\end{array}\right. TransactionDefinition()TransactionStatus()PlatformTransactionManage()
事 务 管 理 的 j a r 包 ( W E N − I N F / l i b ) { s p r i n g − t x − 3.2.0. R E L E S A 3 E . j a r P l a t f o r m T r a n s a c t i o n M a n a g e { s p r i n g − j d b c − 3.2.0. R E L E A S E . j a r s p r i n g − o r m − 3.2.0. R E L E A S E . j a r \begin{array}{c}\mathrm{事务管理的}jar包\\(WEN-INF/lib)\end{array}\left\{\begin{array}{l}spring-tx-3.2.0.RELESA3E.jar\\PlatformTransactionManage\left\{\begin{array}{l}spring-jdbc-3.2.0.RELEASE.jar\\spring-orm-3.2.0.RELEASE.jar\end{array}\right.\end{array}\right. jar(WENINF/lib)springtx3.2.0.RELESA3E.jarPlatformTransactionManage{springjdbc3.2.0.RELEASE.jarspringorm3.2.0.RELEASE.jar

TransactionDefinition事务详情的方法有:描述
①getPropagarionBehavior():int传播行为(两个业务之间如何共享事务)
②getIsolationLevel():int隔离级别
③getTimeout():int获得超时时间
④isReadOnly:boolean是否只读
⑤getName():String配置事务详情名称(一般方法名称如add,save等)
①getPropagarionBehavior传播行为(两个业务之间如何共享事务)的参数有7个 ,比较重要的加*解释
TransactionDefinition.PROPAGATION_REQUIRED*当前如果有事务,Spring就会使用该事务;否则会开始一个新事务
TransactionDefinition.PROPAGATION_SUPPORTS当前如果有事务,Spring就会使用该事务;否则不会开始一个新事务
TransactionDefinition.PROPAGATION_MANDATORY当前如果有事务,Spring就会使用该事务;否则会抛出异常
TransactionDefinition.PROPAGATION_REQUIRES_NEW*Spring总是开始一个新事务。如果当前有事务,则该事务挂起
TransactionDefinition.PROPAGATION_NOT_SUPPORTEDSpring不会执行事务中的代码。代码总是在非事务环境下执行,如果当前有事务,则该事务挂起
TransactionDefinition. PROPAGATION_NEVER即使当前有事务,Spring也会在非事务环境下执行。如果当前有事务,则抛出异常
TransactionDefinition. PROPAGATION_NESTED如果当前有事务,则在嵌套事务中执行。如果没有,开始一个新事务.事务A和B底层采用保存点机制,形成事务的嵌套
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值