【黑马JavaWeb+AI知识梳理】Web后端开发02-事务管理、文件上传

事务管理

  • 介绍&操作

    • 事务是一组操作的集合 ,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败

    • 事务控制主要三步操作:开启事务提交 事务/回滚事务

      • start transaction; / begin;

      • commit;(全部成功)

      • rollback;(只要有一项失败)

    • 应用场景:

      • 银行转账

      • 下单扣减库存

  • Spring事务管理

    • @Transactional //事务管理 - 默认出现运行时异常,才会回滚,即RuntimeException

    • 将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务

    • 位置:业务(service)层的方法(推荐在会对数据库操作多次的方法)上、类上、接口上

  • 事务进阶-rollbackFor

    • 用于控制出现何种异常类型,回滚事务
  • 事务进阶-propagation

    • 事务传播行为:

      • 指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制
    • Required:大部分场景

    • Requires_New:希望两个方法在独立的事务中运行,互不影响

  • 四大特性(ACID)

    • 原子性(Atomicity)

      • 不可分割的最小单元,要么全部成功,要么全部失败
    • 一致性(Consistency)

      • 事务完成时,必须使所有的数据都保持一致状态
    • 持久性(Isolation)

      • 数据库系统提供的隔离机制,保证事务在不受 外部并发操作影响的独立环境下运行
    • 隔离性(Durability)

      • 事务一旦提交或回滚,它对数据库中数据的改变就是永久的
相关推荐
gelald3 分钟前
Spring Boot - 自动配置原理
java·spring boot·后端
supericeice7 分钟前
创邻科技 Galaxybase Graph Intelligence 图智能平台:一站式可视化图数据存储、图计算与图挖掘平台
数据库·科技
heimeiyingwang12 分钟前
【架构实战】NewSQL数据库对比(TiDB/CockroachDB)
数据库·架构·tidb
buhuimaren_13 分钟前
pg日常维护
数据库·oracle
大虾别跑13 分钟前
Oracle迁移
数据库·oracle
希望永不加班16 分钟前
SpringBoot 集成测试:@SpringBootTest 与 MockMvc
java·spring boot·后端·log4j·集成测试
Trouvaille ~17 分钟前
【MySQL篇】数据库操作:从创建到管理
linux·数据库·mysql·oracle·xshell·ddl
uzong20 分钟前
软件人员可以关注的 Skill,亲测确实不错,值得试一下
人工智能·后端
掘金虾23 分钟前
Hono 框架入门到实战:用 Node.js 写一个支持工具调用的流式对话 Agent
后端
用户83562907805125 分钟前
Python 自动拆分 Word 文档教程:按分节符与分页符处理
后端·python