Spring事务知识点(总结)

技术Spring事务知识点(总结) Spring事务知识点(总结)什么是事务
答:既是把操作一次数据库的这个操作当成是一个事务,把这个行为抽象了。
例如:查询一次user表的所有内容叫一次事务。事务的4

春季交易知识点(总结)

什么是交易?

答:这种一次操作数据库的操作被认为是一个事务,这种行为是抽象的。

例如,一次查询用户表的所有内容称为事务。

交易的四大特征(ACID):

?原子性:事务中的操作要么全部成功执行,要么全部不成功。

?一致性:事务执行后,数据库状态与其他业务规则一致。例如,在转账业务的情况下,无论交易是否成功执行,参与转账的两个账户的余额总和都应保持不变。

?隔离:每个事务独立运行。在并发环境中,并发事务相互隔离,互不影响。

?持久性:一旦提交事务,数据库中的数据必须永久保存。

事务的4个隔离级别:

通过传输系统进行分析:

读取_未提交

读取但未提交,即一个事务从另一个事务中读取未提交的数据。在此隔离级别,将发生“脏读”。下表

交易保证金

交易提取

交易开始。

交易开始

b .查询交易余额(10元)

b拆除10元(0元)。

一次查询交易余额(0元)。

取消(10元)

一笔交易保证金在10元(10元)。

交易提交(更新余额:10元)。

正常情况下,交易A和B执行后,账户余额应该是20元,但在T5时刻,交易A查询的余额是0元,因为读取了交易B的未提交数据,也就是读取了“脏”数据。

READ _ COMMITTED

在这种隔离级别下,可以有效避免“脏读”。虽然解决了不可重复读取的问题,但在这种隔离级别下无法避免。在READ_COMMITTED隔离级别下,可能会出现表13-2所示的场景。下表

处理查询

交易提取

交易开始。

交易开始

b .查询交易余额(10元)

一次交易询价(10元)

ext-align: center”>—-事务B取出10元(0元)—-事务B提交(更新余额:0元)事务A查询(0元)—-事务A提交—-

事务A执行了两次余额查询,但第一次查询得到的余额是10元,第二次查询得到的余额为0元,这就是不可重复读取的问题。

  • REPEATABLE_READ

    可重复读级别是保证在事务处理过程中多次读取同一个数据时的值始终是一致的。可重复读取是通过在事务开启后不允许其他事务对当前记录进行修改操作实现的。
    这个隔离级别避免了“脏读”和不可重复读的问题,但是有可能会出现“幻读”。“幻读”场景的出现。如下表

    事务A查询 事务B存款款
    事务A开始 —-
    —- 事务B开始
    事务A查询 —-
    —- 事务B存入10元
    —- 事务B提交
    事务A查询 —-
    事务A提交 —-

    在事务A中,同一个事务多次获取交易记录,发现第二次获取交易记录的结果中多出了一笔存款记录——事务B发生的存款操作,对事务A来说,好像是出现了幻觉一样,即“幻读”。

  • SERIALIZABLE

    顺序读是最严格的事务隔离级别。它要求所有的事务排队依序执行,即事务只能一个接一个地处理,不能并发执行。

  • Spring还有一种默认既是根据数据的事务来决定自己的事务

  • 4种事务隔离级别从上往下,级别越高,并发性越差,但安全性越来越高。

    事务隔离级别 脏读 重复读 幻读
    READ_UNCOMMITTED 允许 允许 允许
    READ_COMMITTED 不允许 允许 允许
    REPEATABLE_READ 不允许 不允许 允许
    SERIALIZABLE 不允许 不允许 不允许
  • 事务的7中传播途径

    答:事务传播行为是用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时候。

    举例子:

    • 首先查询剩余余额算成一个事务

    • 接着定义取款事务

      取款之前先调用查询事务

      这个过程就叫事务的传播

  • 内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52957.html

    (0)

    相关推荐

    • sqlserver中的int型转为decimal(sqlservercast语法)

      技术怎么浅析SQLServer中的Scanf与Printf怎么浅析SQLServer中的Scanf与Printf,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题

      攻略 2021年12月20日
    • 如何搭建属于自己的代理ip池

      技术如何搭建属于自己的代理ip池如何搭建属于自己的代理ip池,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天这篇文章会搭建一个属于自己的代理ip池,所

      攻略 2021年10月28日
    • MyBatis通用Mapper@Table注解使用的注意点分析

      技术MyBatis通用Mapper@Table注解使用的注意点分析本篇内容介绍了“MyBatis通用Mapper@Table注解使用的注意点分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小

      攻略 2021年11月26日
    • ps内容识别填充,照片中混入别的人怎么p掉

      技术ps内容识别填充,照片中混入别的人怎么p掉照片中混入别的人怎么p掉?照片中混入别的人怎么p掉ps内容识别填充,如何去除照片中多余的人物,杂物,我讲一种最简单快速的办法,需要有最新版本的 PS CC 2019,这个功能

      生活 2021年10月22日
    • php如何读取远程xml文件并转化为数组

      技术php如何读取远程xml文件并转化为数组这篇文章主要讲解了“php如何读取远程xml文件并转化为数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何读取远程x

      攻略 2021年10月27日
    • 布局标签,结构化语义标签)

      技术布局标签,结构化语义标签) 布局标签(结构化语义标签)注意,关注的是语义,而不是样式的区别,下面的这些标签所展示出来的样式都是一样的,都是H5新增的一些标签,当我们遇到这些标签的时候就能够通过语义知

      礼包 2021年12月10日