数据库事务、SpringBoot声明事务

本文深入探讨了数据库事务的四大特性——原子性、隔离性、持久性和一致性,以及事务日志在确保数据一致性的关键作用。此外,还详细介绍了SpringBoot中的声明式事务管理,包括其工作原理和如何在代码中实现事务控制,帮助开发者更好地理解和应用事务管理机制。
摘要由CSDN通过智能技术生成

几乎很多面试考官会问事务性是什么,但是知道事务是怎么回事却又说不出详细的。

一、数据库事务性

    数据库几乎是所有系统的核心模块,它将数据有条理地保存在储存介质(磁盘)中,
并在逻辑上,将数据以结构化的形态呈现给用户。支持数据的增、删、改、查,并在过程中保障数据的正确且可靠。

    类似你去银行ATM去取钱,钱没出来,而余额被扣了!!!

    1、首先我们要达到余额不被扣除,那么就先要了解事务的四大特性

        * 原子性(Atomicity): 事务要么全部完成,要么全部取消。 如果事务崩溃,状态回到事务之前(事务回滚)。

        * 隔离性(Isolation): 如果2个事务 T1 和 T2 同时运行,事务 T1 和 T2 最终的结果是相同的,不管 T1和T2谁先结束(锁机制)。

        * 持久性(Durability): 一旦事务提交,不管发生什么(崩溃或者出错),数据要保存在数据库中。

        * 一致性(Consistency): 只有合法的数据(依照关系约束和函数约束)才能写入数据库。

    2、事务日志

        数据库通过事务日志来达到这个目标。 事务的每一个操作(增/删/改)产生一条日志,内容组成大概如下:

  • LSN:一个按时间顺序分配的唯一日志序列号,靠后的操作的LSN比靠前的大。
  • TransID:产生操作的事务ID。
  • PageID:被修改的数据在磁盘上的位置,数据以页为单位存储。
  • PrevLSN:同一个事务产生的上一条日志记录的指针。
  • UNDO:取消本次操作的方法,按照此方法回滚。
  • REDO:重复本次操作的方法,如有必要,重复此方法保证操作成功。

 二、SpringBoot声明事务(事务声明详解

 在Spring中,事务有两种实现方式,分别是编程式事务和声明式事务。

    编程式事务:编程式事务管理使用Transaction Template或者直接使用底层的Platform TransactionManager。对于编程式事务,Spring推荐使用Transaction Template。TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

    声明式事务:声明式事务基于AOP,其本质是对方法前后进行拦截,在方法开始前创建或加入一个事务,再根据目标方法执行的结果决定提交还是回滚事务。只需要在类、方法加上

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值