笔记-数据库事务和java事务和切面 1. 先分三个层级从上到下第一层数据库本身的事务MySQL 事务这是底层原生的和 Java、Spring 一毛钱关系都没有。MySQL 自己就有事务begin;→ 开启insert/update/deletecommit;→ 提交rollback;→ 回滚特点数据库自己管提交、回滚开启事务后不提交、不回滚连接就一直被占用持有行锁、表锁一条 SQL 执行完默认自动提交autocommiton你可以理解为仓库本身自带的锁机制。第二层Java 程序里的事务Java 只是调用数据库Java 本身没有事务Java 只是通过 JDBC 告诉 MySQL你给我开事务执行 SQL最后统一提交 / 统一回滚JDBC 事务本质就是控制数据库事务的开关// JDBC原生伪代码connection.setAutoCommit(false);// 关闭自动提交 开启事务// 执行一堆sqlconnection.commit();// 全部成功才提交connection.rollback();// 任意失败全部回滚所以Java 没有事务Java 只是操控数据库事务第三层Spring AOP 切面事务Transactional这就是你天天用的也是最绕的一层。Spring 做了一件事用 AOP 动态代理 切面自动帮你管理 JDBC 事务流程是你在方法上加TransactionalSpring 的事务切面拦截这个方法方法执行前自动开启数据库事务关闭 autoCommit执行你写的业务代码循环、mapper、接口调用方法全部正常结束自动 commit 提交方法抛异常自动 rollback 回滚一句话总结Transactional 就是 Spring AOP 切面切面 拦截器自动帮你开关数据库事务。2. 三者完整关系链核心图Spring AOP事务切面 ↓ 控制 Java JDBC 事务 ↓ 操控 MySQL 数据库原生事务数据库事务底层能力Java JDBC中间桥梁发指令给数据库Spring AOP 切面自动帮你套事务不用手写开关2.1 Transactional 的传播行为传播行为含义核心一句话REQUIRED默认如果外层有事务就加入当前事务没有则新建事务有就共用没有就新建SUPPORTS外层有事务就加入没有事务就无事务执行有就用没有就裸跑MANDATORY外层必须存在事务没有直接抛异常必须外层有事务否则报错REQUIRES_NEW挂起外层事务创建全新独立事务内外事务互不影响挂起旧的开全新事务NOT_SUPPORTED挂起外层事务以无事务运行执行完恢复外层事务挂起旧事务强制裸跑NEVER绝对不允许外层存在事务外层有事务直接抛出异常有事务直接报错NESTED外层有事务则在当前事务内创建保存点 (savepoint)外层无事务则新建事务嵌套事务支持局部回滚3. 问题回答问题 1Java 有事务吗**没有。**Java 只是操控数据库事务。问题 2Transactional 是什么Spring AOP 切面。专门用来自动管理数据库事务的切面。问题 3切面和事务是什么关系切面 事务的管理者不加注解 → 切面不理你加默认注解 → 切面全程托管事务加NOT_SUPPORTED→ 切面完全不管放开你问题 4为什么定时任务一定要 NOT_SUPPORTED定时任务特点长循环大量数据库操作调用外部接口、流程引擎慢 IO不需要多 SQL 统一回滚完全不需要统一事务所以直接关掉切面托管。问题 5程序运行数据库是不是会停止**完全不是**数据库一直正常运行。只是不加注解时连接被切面开启的长事务占住别人用不了。问题 6什么时候需要 Transactional 默认事务普通业务接口比如下单、扣款、入库、修改多条 SQL 必须一起成功、一起失败不能中途提交。问题 7什么时候必须关掉事务NOT_SUPPORTED定时任务异步任务后台批处理循环大量操作方法内包含网络调用、第三方接口不需要统一回滚的场景4. 背诵口诀事务本身是数据库的Java 没有事务Transactional 是 Spring AOP 切面自动管数据库事务默认切面方法全程一个大事务跑完才提交NOT_SUPPORTED取消切面管理无事务每条 SQL 自动提交定时任务必须关闭切面

相关新闻

最新新闻

音乐歌词下载终极指南:免费批量获取网易云QQ音乐LRC歌词的完整教程

音乐歌词下载终极指南:免费批量获取网易云QQ音乐LRC歌词的完整教程

音乐歌词下载终极指南:免费批量获取网易云QQ音乐LRC歌词的完整教程 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器缺少歌词而烦恼吗&#x…

2026/8/11 20:51:42
《新概念英语》第13课教学解析与实战应用

《新概念英语》第13课教学解析与实战应用

1. 项目背景与核心价值 《新概念英语》作为全球最畅销的英语教材之一,其第一册第13课"A new dress"是初学者接触日常英语对话的经典案例。这个看似简单的购物场景对话,实际上包含了英语基础阶段必须掌握的多个语言要素: 颜色与服装…

2026/8/11 20:51:42
3个场景让你彻底告别百度网盘手动操作

3个场景让你彻底告别百度网盘手动操作

3个场景让你彻底告别百度网盘手动操作 【免费下载链接】BaiduPanFilesTransfers 百度网盘批量转存、分享和检测工具 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduPanFilesTransfers 你知道吗?每天有成千上万的网友在百度网盘上重复着同样的操作&#…

2026/8/11 20:51:42
163MusicLyrics:解决多平台音乐歌词标准化获取与处理的技术方案

163MusicLyrics:解决多平台音乐歌词标准化获取与处理的技术方案

163MusicLyrics:解决多平台音乐歌词标准化获取与处理的技术方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 引言:音乐元数据生态中的歌词标准…

2026/8/11 20:51:42
causal-conv1d单元测试全攻略:确保你的因果卷积结果准确无误

causal-conv1d单元测试全攻略:确保你的因果卷积结果准确无误

causal-conv1d单元测试全攻略:确保你的因果卷积结果准确无误 【免费下载链接】causal-conv1d Causal depthwise conv1d in CUDA, with a PyTorch interface 项目地址: https://gitcode.com/gh_mirrors/ca/causal-conv1d causal-conv1d是一个基于CUDA实现的因…

2026/8/11 20:51:42
跨平台歌词解析引擎:自动化获取与智能匹配技术深度解析

跨平台歌词解析引擎:自动化获取与智能匹配技术深度解析

跨平台歌词解析引擎:自动化获取与智能匹配技术深度解析 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 在数字音乐时代,歌词不仅是文字的表达&…

2026/8/11 20:46:42