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

事务管理

  • 介绍&操作

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

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

      • start transaction; / begin;

      • commit;(全部成功)

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

    • 应用场景:

      • 银行转账

      • 下单扣减库存

  • Spring事务管理

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

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

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

  • 事务进阶-rollbackFor

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

    • 事务传播行为:

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

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

  • 四大特性(ACID)

    • 原子性(Atomicity)

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

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

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

      • 事务一旦提交或回滚,它对数据库中数据的改变就是永久的
相关推荐
重庆穿山甲14 小时前
Java开发者的大模型入门:Spring AI组件全攻略(一)
前端·后端
布列瑟农的星空14 小时前
前端都能看懂的rust入门教程(二)——函数和闭包
前端·后端·rust
颜酱15 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
zone773915 小时前
001:LangChain的LCEL语法学习
人工智能·后端·面试
zone773915 小时前
001:简单 RAG 入门
后端·python·面试
jiayou6415 小时前
KingbaseES 实战:审计追踪配置与运维实践
数据库
嘻哈baby15 小时前
如何理解Rust语言中Send和Sync?
后端
用户2986985301415 小时前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
序安InToo16 小时前
第6课|注释与代码风格
后端·操作系统·嵌入式
xyy12316 小时前
C#: Newtonsoft.Json 到 System.Text.Json 迁移避坑指南
后端