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)

    相关推荐

    • 如何理解docker

      技术如何理解docker这篇文章给大家介绍如何理解docker,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 随着用户的需求越来越多样,系统的规模越来越庞大,运行的软件越来越复杂,环境配置问题

      攻略 2021年10月20日
    • 怎么解决关于Zabbix忘记admin登录密码的问题

      技术怎么解决关于Zabbix忘记admin登录密码的问题本篇内容主要讲解“怎么解决关于Zabbix忘记admin登录密码的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎

      攻略 2021年11月2日
    • Spring解决循环依赖的方式有哪些

      技术Spring解决循环依赖的方式有哪些小编给大家分享一下Spring解决循环依赖的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!循

      攻略 2021年12月11日
    • sqlite怎么使用子查询函数(sqlite select语句)

      技术SQLite中的SELECT子句如何使用通配符小编给大家分享一下SQLite中的SELECT子句如何使用通配符,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQLite中的SELECT子句使用通配符

      攻略 2021年12月18日
    • 苹字怎么组词,“苹”字的组词及词组的意思

      技术苹字怎么组词,“苹”字的组词及词组的意思苹píng pēng 中文解释 英文翻译 苹的中文解释
      以下结果由汉典提供词典解释
      苹 píng
      部首笔画
      部首:艹 部外笔画:5 总笔画:8
      五笔86:

      生活 2021年10月31日
    • 骠勇读音,brothers怎么读

      技术骠勇读音,brothers怎么读brother的读音为英 [ˈbrʌðə(r)] 美 [ˈbrʌðɚ] 骠勇读音。具体释义如下: brother 英 [ˈbrʌðə(r)] 美 [ˈbrʌðɚ] 1、名词 n.兄弟;

      生活 2021年10月29日