首页 > 其他分享 >事务

事务

时间:2024-02-20 16:57:57浏览次数:26  
标签:事务 隔离 数据库 www 并发 执行

开发中又遇到了事务相关问题,就乘着这次,重新整理下事务相关

一、什么是事务

首先大家都知道sql吧,我的理解是:事务就是一组对sql语句的操作的集合

二、事务的四大特性

这组sql语句具备 同时执行成功和同时执行失败的特性。把这一特性细分,就是事务的四大特性 ——> ACID

  • A【Atomicity】原子性,一个事务是一个整体,他们同时被执行,或者同时不执行,如果执行到一半出现错误,会有相应的措施解决(后文会提)

  • C【Consistency】一致性,事务在事务执行之前和事务执行之后的完整性不变,即事务的执行使数据库从一种正确状态变为另一种正确状态

  • I【Isolation】隔离性,数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性保证了事务在未执行完本次操作之前,其他事务看不到该事务对数据库的改变

  • D【Durability】持久性,事务执行结束后,对数据库的改变是永久且不可逆的

三、事务的隔离级别

这里分为两部分 【并发下,事务会产生的问题】+ 【事务的隔离级别】

前面我们说到了事务四大特性之一的 隔离性,它的特点最明显,有并发。
在并发环境下会出现的问题如下:放链接了

这里,默认的隔离级别 ——> MySQL :可重复读REPEATABLE-READ,Oracle :读已提交READ COMMITTED

四、事务的传播机制

五、事务类型

  • 数据库事务类型有本地事务和分布式事务
  • Java事务类型有JDBC事务和JTA事务
  • spring事务是对JDBC事务的封装,包含声明式事务和编程式事务

https://www.cnblogs.com/xiaolang8762400/p/7407161.html

https://www.cnblogs.com/drizzlewithwind/p/5711653.html

在这里介绍spring事务的声明式事务
它有两种:一种xml文件注入,一种使用注解

    • 注解 : @Transactional + @EnableTransactionManager

五、事务失效

为什么失效?事务是AOP动态代理实现的,回答这个问题也就是回答为什么动态代理失效

标签:事务,隔离,数据库,www,并发,执行
From: https://www.cnblogs.com/psuitj/p/17751274.html

相关文章

  • 03 事务隔离
    03事务隔离事务:保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。事务ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)。建议你尽量不要使用长事务。****读未提交(readuncommitted)、读提交(readco......
  • 【Spring】【Mybatis】【Dynamic-Datasource】【事务】Spring + MyBaits + 事务 + 动
    1 前言我上次有一篇是讲了从一个数据库连接的角度分析了 Spring+MyBaits+事务三者的联系,这是在数据源固定的情况下。那么可能会遇到,比如按租户的分库,这种情况下我们会引入动态的数据源比如苞米豆团队的Dynamic-Datasource或者是自己公司内部封装的工具、框架等,这节我们......
  • 什么是Spring事务传播行为?Spring有哪些事务传播行为?
    Spring事务传播行为是指当一个事务方法(当前事务)被另一个事务方法(调用者)调用时,这个事务方法(当前事务)对另一个事务方法(调用者)的态度。简单来说,就是当一个事务方法A调用了另一个事务方法B时,B应该如何应对。用伪代码说明:publicvoidmethodA(){methodB();//doSomething......
  • 翻译,师爷师爷什么叫事务!
    当我们学习apple时候,我们很容易记住apple是什么。我们也不会对apple的概念产生模糊混淆。为什么?因为字典上明确说了,apple=苹果。那苹果是什么?苹果就是圆圆的红红的,吃起来甜甜的水果。我们学习apple如此简单,就是因为我们对苹果这个概念的理解已经通透到不能再通透......
  • Spring事务实现原理
    1、引言spring的spring-tx模块提供了对事务管理支持,使用spring事务可以让我们从复杂的事务处理中得到解脱,无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。spring事务有编程式事务和声明式事务两种实现方式。编程式事务是通过编写代码来管理事务的提交、回滚、以及......
  • 【性能测试】MYSQL锁和mysql事务问题排查04
    一、MYSQL锁目的:解决客户端并发访问冲突问题查看死锁showOPENTABLESwhereIn_use>0案例登录接口 #锁定表LOCKTABLESlitemall.litemall_userREAD;#睡眠160秒SELECTSLEEP(160);#解锁表UNLOCKTABLES;当用户表被锁定时,接口无法登录访问,解锁后可以正......
  • 第二十二天:mysql并发控制及事务日志
    一、锁机制锁类型:读锁:共享锁,也称为S锁,只读不可写(包括当前事务),多个读互不阻塞写锁:独占锁,排它锁,也称为X锁,写锁会阻塞其它事务(不包括当前事务)的读和写S锁和S锁是兼容的,X锁和其它锁都不兼容,举个例子,事务T1获取了一个行r1的S锁,另外事务T2可以立即获......
  • 分布式事务详解
    概述随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务、创建订单......
  • 分布式事务(八):Seata之AT模式应用
    Seata中AT模式的官方文档地址:https://seata.io/zh-cn/docs/dev/mode/at-mode.html。AT模式是一种无侵入的分布式事务解决方案,基于两阶段提交协议实现的,用户的业务SQL处理作为一阶段,Seata会根据一阶段的执行结果自动判断二阶段的提交或回滚。1、整体机制Seata的AT模式是......
  • 分布式事务(七):Seata-Server的搭建
    1、Seata-Server下载官方文档地址:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html。下载地址:https://github.com/seata/seata/releases,这里下载的是1.5.1版本,seata-server-1.5.1.tar.gz。 解压文件目录如下 2、注册中心配置Seata支持的注......