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)

    相关推荐

    • QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列

      技术QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列 QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列一、首先需要给QTableWidget安装事件
      二、重新实现

      礼包 2021年10月27日
    • 2021-2022-1 20211307《信息安全专业导论》第九周学习总结

      技术2021-2022-1 20211307《信息安全专业导论》第九周学习总结 2021-2022-1 20211307《信息安全专业导论》第九周学习总结2021-2022-1 20211307《信息安

      礼包 2021年11月20日
    • C++声明局部变量类型时为什么概念比auto更好

      技术C++声明局部变量类型时为什么概念比auto更好本篇内容主要讲解“C++声明局部变量类型时为什么概念比auto更好”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++声明

      攻略 2021年11月24日
    • 可可粉,如何制作巧克力

      技术可可粉,如何制作巧克力原料:可可粉可可粉、可可脂、砂糖、牛奶工具:微波炉、大碗、模具
      可可粉、可可脂、(买块状的好一些,当然如果买的是粉装的也行。但是如果买了粉状可可,就要买黄油了)。可可脂买代脂,吃多了不会胖。

      生活 2021年11月1日
    • mysql临时表的问题有哪些

      技术mysql临时表的问题有哪些这篇文章主要为大家展示了“mysql临时表的问题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql临时表的问题有哪些”这篇文章吧。

      攻略 2021年11月6日
    • 天然气锅炉怎么操作,家用燃气锅炉的正确使用方法

      技术天然气锅炉怎么操作,家用燃气锅炉的正确使用方法1、即使寒冷的冬季不使用热水/采暖热水器,也为了启动防冻结装置,电源需插座上,或将供暖系统内的水放净,才可关闭电源天然气锅炉怎么操作。2、在使用时,首先要注意压力一定不要

      生活 2021年10月19日