美文网首页
3、事务

3、事务

作者: lois想当大佬 | 来源:发表于2019-12-10 14:14 被阅读0次

事务具有四大特性:原子性、一致性、隔离性、持久性;两大属性:隔离级别、传播行为。
1、事务四大特性
数据库如果支持事务的操作,那么就具备以下四个特性:
 A、原子性:事务中的操作全部发生或全部不发生。
 B、一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。从业务层理解是:A帐户转钱给B帐户100元钱,这时数据库事务就必须保证A帐户钱减100,B帐户加100,且最终a,b帐户余额也是正确的。
 C、隔离性:一个事务的执行不能被其他事务干扰。事务有4种隔离级别:读未提交、读已提交、可重复读、串行化。
 D、持久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

2、事务属性
 A、传播行为:定义了何时要创建一个事务或者何时使用已有的事务。【propagation】
 B、隔离级别:定义了一个事务可能受其他事务影响的程度。(脏读、不可重复读、幻读)【isolation】
 C、只读
 D、事务超时
 E、回滚规则

3、事务4种隔离级别
隔离级别:定义了一个事务可能受其他事务影响的程度,为了有效保证并发读取数据的正确性。
 A、读未提交:脏读、不可重复读、幻读
 B、读已提交:避免脏读,仍然不可重复读、幻读
 C、重复读:避免脏读、不可重复读,仍然幻读【默认】
 D、串行化:避免脏读、不可重复读、幻读

脏读:因为事务回滚,导致前后读取数据不一致。
不可重复读:因数据被修改,导致两次读取数据不一致。
幻读:因新增或删除数据,导致前后读取数据不一致。


image.png

4、spring事务7种传播行为
事务传播行为:带有事务配置的方法,如何处理事务。定义了何时要创建一个事务或者何时使用已有的事务。

一、支持当前事务
propagation_required:
如果当前存在事务,则使用该事务;如果当前没有事务,则创建一个事务。
propagation_supports:
如果当前存在事务,则使用该事务;如果当前没有事务,则以非事务状态运行。
propagation——mandatory:
如果当前存在事务,则使用该事务;如果当前没有事务,则抛出异常。

二、不支持当前事务
propagation_requires_new:
创建一个新事务;如果当前存在事务则把当前事务挂起。
propagation_not_supported:
以非事务方式运行;如果当前存在事务则把当前事务挂起。
propagation_never:
以非事务方式运行;如果当前存在事务,则抛出异常。

三、其他情况
propagation_nested:
如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行。
如果当前没有事务,则创建一个事务。

@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
public class SpitterServiceImpl implements SpitterService{

@Transactional(propagation=Propagation.REQUIRED,readOnly=false)
public void addSpitter(Spitter spitter){
}
}

相关文章

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • 补充 - 事务 & 锁机制

    一,事务 1,什么是事务 2,事务的4大特征ACID 3,事务的3种运行模式 4,如何开启事务(默认开启) 二,数...

  • Spring事务总结

    1. 事务定义 2. 事务状态 3. 编程式事务

  • 3、事务

    事务具有四大特性:原子性、一致性、隔离性、持久性;两大属性:隔离级别、传播行为。1、事务四大特性数据库如果支持事务...

  • redis事务操作

    1.multi开启事务 2.exec提交事务 3.discard提交事务 事务级别串行化

  • Spring 事务管理

    1 目标 2事务回顾 什么是事务 具体案例 事务的特性 3 事务的API Spring 接口介绍 Platform...

  • 探秘数据库中的事务

    本文包括:1、事务概念2、MySQL管理事务3、JDBC控制事务进程4、事务的特性(ACID)5、事务的隔离级别6...

  • Thinkphp3.2/tp3.2数据库事务操作

    1.启动事务:$模型->startTrans();2.提交事务:$模型->commit();3.事务回滚:$模型-...

  • 黑猴子的家:mysql 事物实操

    1、事务总结 2、查看事务是否自动开启 3、事务案例演示一 4、演示delete和truncate在事务中的区别 ...

  • 9.MySQL中的事务

    目录:1.事务的特性2.事务的生命周期3.事务的操作4.事务的隔离级别 1. 事务的特特性 事务Transacti...

网友评论

      本文标题:3、事务

      本文链接:https://www.haomeiwen.com/subject/upcggctx.html