记录JAVA事务学习

1.事务的特性

a.原子性:事务是一个不可分割的单位
b.一致性:事务前后的数据保持一致
c.隔离性:一个事务的操作不被其他事务干扰
d.持久性:一旦提交数据库,其数据是持久的

2.事务的接口

主要包括三个接口:
a.PlatFormTransactionManager 事务管理器
b.TransactionDefinition 事务定义信息(隔离,传播,超时,只读)
c.TransactionSatuts 事务具体运行状态

a.PlatFormTransactionManager
image.png
b.TransactionDefinition

事务本身的隔离级别:


image.png

事务间的传播行为:


image.png
c.TransactionSatuts
image.png
3.在springboot中使用事务

只需要在类或者public方法上加上@Transactional

@Transactional
    public void moneyAToB() {
        //aaa转出200
        AccountExample a = new AccountExample();
        a.createCriteria().andAccountEqualTo("aaa");
        Account aaa = accountMapper.selectByExample(a).get(0);
        aaa.setMoney(aaa.getMoney()-200);
        accountMapper.updateByExample(aaa, a);
        int c = 1/0;
        //bbb收到200
        AccountExample b = new AccountExample();
        b.createCriteria().andAccountEqualTo("bbb");
        Account bbb = accountMapper.selectByExample(b).get(0);
        bbb.setMoney(bbb.getMoney()+200);
        accountMapper.updateByExample(bbb, b);
        
    }

定义隔离级别

@Transactional(isolation=Isolation.READ_COMMITTED)

定义传播行为

@Transactional(propagation=Propagation.NESTED)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事务: 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事物的特性:(ACID) 原子性: 事务是最小的执行单...
    n油炸小朋友阅读 451评论 1 1
  • 什么是事务? 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中...
    青青子衿zq阅读 8,076评论 0 2
  • 事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性:...
    JAVA开发之路阅读 402评论 0 0
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,094评论 0 13
  • 什么是事务 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事务的特性 原子性: 事务是最小的执行单位,不允许...
    Ifthe_1da7阅读 550评论 0 0