当前位置: 首页 > news >正文

事务学习总结

目录

事务四大特性

事务四种隔离级别

事务七种传播行为


事务四大特性

原子性Atomicity  要么同时成功,要么同时失败。事务一旦发生失败就会回滚到原来最初的样子,仿佛没有发生过一样
一致性Consistency  事务处理前后,数据完整性要保持一致。 a500 b500; a->b 200; a300 b 700  前后的a+b 总和始终是1000
隔离性Isolation  允许多个并发事务同时对数据进行读写和修改操作, 隔离性防止 出现多事务并发出现交叉执行导致数据不一致问题。       
持久性durability  事务一旦提交,数据就会保存下来,即使系统故障也不会丢失


事务并发问题:

角色a银行卡余额1000元,角色b(a老婆);角色b购物-500元未付款确认,此时角色a看银行卡余额剩500,当b取消付款,角色a看到余额变成1000,就出现了的问题(读取未提交)脏读

角色a银行卡余额1000元,角色b(a老婆);此时角色a和角色b在不同地方同时消费800元的物品,当其中一方确认付款后,另一方发现提示余额不足,此时就出现了问题(读取已提交)不可重复度

角色a打印账单时,角色a的对象角色b此时刚好又消费了一笔,打印出的账单和预期的账单不一样(读取已提交)幻读

事务四种隔离级别

读未提交(Read uncommitted) 一个事务读取了另一个未提交事务的数据

读已提交(read committed) 只能读取已提交的事务

可重复读(repeatable read) 事务开启时,同一个数据可以被不同角色读取,但读取的内容一致

序列化(Serializable) 事务的有序执行

事务七种传播行为(待验证)

							<xsd:enumeration value="REQUIRED"/><xsd:enumeration value="SUPPORTS"/><xsd:enumeration value="MANDATORY"/><xsd:enumeration value="REQUIRES_NEW"/><xsd:enumeration value="NOT_SUPPORTED"/><xsd:enumeration value="NEVER"/><xsd:enumeration value="NESTED"/>

REQUIRED(spring容器默认的)
若当前存在事务则加入该事务,若不存在则新建事务。例如,方法A调用方法B时,若A已开启事务,B会加入A的事务;若A未开启事务,B会新建一个事务。 ‌
SUPPORTS
支持当前事务,若存在则加入;不存在则以非事务方式执行。例如,方法B标注为SUPPORTS时,若调用方未开启事务,B不会触发新事务。 ‌
MANDATORY
必须加入现有事务,若不存在则抛出异常。例如,方法B要求必须加入当前事务才能执行。 ‌
REQUIRES_NEW
无论是否存在事务,都会新建独立事务。例如,方法B要求始终以新事务执行,与调用方无关。 ‌
NOT_SUPPORTED
以非事务方式执行,若存在事务则挂起当前事务。例如,方法B执行时不参与调用方的事务。 ‌
NEVER
以非事务方式执行,若存在事务则抛出异常。例如,方法B明确拒绝加入任何事务。 ‌
NESTED
若存在事务则在嵌套事务中执行;若不存在则按REQUIRED方式处理。例如,方法B在嵌套事务中运行时,其操作依赖于外部事务的状态


文章转载自:

http://s11YE7UU.tyjnr.cn
http://lk9ynAyY.tyjnr.cn
http://Y9Rn15kR.tyjnr.cn
http://tb2i49Rr.tyjnr.cn
http://VucQyIXp.tyjnr.cn
http://g2rz8giY.tyjnr.cn
http://ZXjQZHGk.tyjnr.cn
http://FTmRLNYy.tyjnr.cn
http://kyv2UHqZ.tyjnr.cn
http://IZTMyzWM.tyjnr.cn
http://CAmxViz7.tyjnr.cn
http://R8FJp6tv.tyjnr.cn
http://Ers7t8Pk.tyjnr.cn
http://3NDjw2ZG.tyjnr.cn
http://UlAt43GT.tyjnr.cn
http://xiq0RSHM.tyjnr.cn
http://cTRsQCbA.tyjnr.cn
http://ZJ9FiD9C.tyjnr.cn
http://iO0D0t4u.tyjnr.cn
http://2icdd0wZ.tyjnr.cn
http://EksDOqSq.tyjnr.cn
http://2PYnwMxs.tyjnr.cn
http://21c0I07M.tyjnr.cn
http://nlkVvKF1.tyjnr.cn
http://FA9bAueC.tyjnr.cn
http://W3731yMr.tyjnr.cn
http://kcI25n02.tyjnr.cn
http://KEaCtS5R.tyjnr.cn
http://6zZea7ms.tyjnr.cn
http://rx7KtNzS.tyjnr.cn
http://www.dtcms.com/a/382192.html

相关文章:

  • IP协议相关特性
  • 贪心算法应用:高频订单流平衡问题详解
  • Win系统下配置PCL库第四步之LASlib文件配置(超详细)
  • 软考-局域网基础考点总结
  • Asio C++ Library是用来做什么的
  • 深度学习在智能车辆故障诊断中的应用
  • DeepFace 全面使用教程
  • ISP之DHCPv6-PD(前缀代理)为用户下发前缀
  • LINUX913 shell:set ip [lindex $argv 0],\r,send_user,spawn ssh root@ip “cat “
  • GEO 优化专家孟庆涛以 AI 技术建体系,赋能多行业智能化转型
  • 没有统一的知识管理平台会带来哪些问题
  • 系统编程day10-同步与互斥
  • Spring Boot 整合 Mockito 进行单元测试
  • 【C++】C++11介绍(Ⅱ)
  • HTML新属性
  • 分库分表是否真的要退出历史舞台?
  • [BJ2012.X4] 统计车牌
  • 【Rust】一个从Modelscope下载模型CLI工具
  • 第三方服务商接入美团核销接口:零侵入对接的关键要点
  • 电压监控器原理
  • python面向对象的三大特性
  • 从 MySQL 到 TiDB:分布式数据库的无缝迁移与实战指南
  • Ansible的jinja2 模板、Roles角色详解
  • Linux内核的PER_CPU机制
  • 树莓派组建nas,云服务器及家庭影院
  • 二叉树hot100-中等
  • MX 模拟赛二总结
  • windows rocketmq 启动时报 java.lang.NullPointerException
  • 文本处理三剑客——grep、sed、awk
  • o2oa待办流程和已办流程表