Spring事务一:事务的原子性控制以及事务传播特性(一):

Spring事务一:事务的原子性控制以及事务传播特性:

我们学习的AOP,最重要的就是对事务的控制。

实际项目中,对数据库的单次操作,如一次insert,我们在jdbc Template中,使用的是jdbc的事务,会自动的为我们提交事务。但是在实际项目中,一次操作可能会涉及多次数据库的连接,这样是需要我们来保证事务的一致性的,要么同时成功,要么同时失败,使用jdbc实现起来是很麻烦的,使用AOP就可以来完成这些工作。如我单次操作,多次数据库的连接,AOP可以自动的来为我开启事务,关闭事务,提交事务,包括事务的传播特性,隔离级别,都可以使用AOP来做设置。

 

事务我们自己去写,是一件很麻烦的事情,事务的传播,隔离级别,自己去写的话是相当费事的,使用Spring的AOP可以简单很多。

 

1:事务的概述和特征:

1:什么是事务:

一荣俱荣,一损俱损,多个复杂的操作,可以将其看作是一个整体,要么同时成功,要么同时失败。

事务的四个特征(ACID):

这四个特征面试常问,工作中也是很重要的。

 

 

  1. 原子性(Atomic):表示组成一个事务多个数据库的操作不可分割的单元。只有所有的操作成功,才算成功,整个事务提交的时候,其中任何一个操作失败,都会导致所有操作失败,那么事务就会做回滚。

如我一次事务中,有十次对数据库的操作,这十次操作要么同时成功,要么同时失败。一个操作失败,即这十个操作全部失败。

 

  1. 一致性(Consistentcy):事务操作成功后,数据库所处的状态和业务规则保持一致

 

如A转100元给B,就要保证A的账户减少100元,B的账户增加100元。转账前后,A和B账户的余额是不会有变化的。如果A减少了100元,但是B却没有增加100元,这样就是不一致的。

 

  1. 隔离性(islation):多个数据库的操作操作相同的数据并发时,不同的事务有自己的数据空间,事务与事务之间不受干扰。

 

但是不是完全不受干扰,干扰程度由数据库或者操作事务的隔离级别来决定的,隔离级别越高,干扰就越低,并发性就越低,数据的一致性越好。

 

  1. 持久性(Druability):一旦事务提交成功数据就持久化到数据库之中了,是不可以在回滚了。重启机器,重启服务器,数据都还是在的。

 

原子性:可以使用Spring的事务传播来控制,一致性和隔离性:使用数据库的隔离级别来控制

 

 

2:事务原子性剖析:

Spring中,原子性的控制主要体现在事务传播这一块(Spring对事物传播特性的控制)。

现在我来建立两张表:订单表和订单明细表,订单明细表中添加订单表的主键,但是不使用约束:

 

 

1:使用注解来处理事务传播特性:

说明:我们要保证事务的原子性࿰

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值