Spring声明式事务中属性解释
本文内容节选自北京尚学堂张佳明老师培训视频
1. name=”” 哪些方法需要有事务控制
- 支持*通配符
2. readonly=”boolean” 是否是只读事务.
- 如果为 true,告诉数据库此事务为只读事务.数据化优化,会对性能有一定提升,所以只要是查询的方法,建议使用此数据.
- 如果为 false(默认值),事务需要提交的事务.建议新增,删除,修改.
3. propagation 控制事务传播行为.
- 当一个具有事务控制的方法被另一个有事务控制的方法调用后,需要如何管理事务(新建事务?在事务中执行?把事务挂起?报异常?)
- REQUIRED (默认值): 如果当前有事务,就在事务中执行,如果当前没有事务,新建一个事务.
- SUPPORTS:如果当前有事务就在事务中执行,如果当前没有事务,就在非事务状态下执行.
- MANDATORY:必须在事务内部执行,如果当前有事务,就在事务中执行,如果没有事务,报错.
- REQUIRES_NEW:必须在事务中执行,如果当前没有事务,新建事务,如果当前有事务,把当前事务挂起.
- NOT_SUPPORTED:必须在非事务下执行,如果当前没有事务,正常执行,如果当前有事务,把当前事务挂起.
- NEVER:必须在非事务状态下执行,如果当前没有事务,正常执行,如果当前有事务,报错.NESTED:
- 必须在事务状态下执行.如果没有事务,新建事务,如果当前有事务,创建一个嵌套事务.
4. isolation=”” 事务隔离级别
- 在多线程或并发访问下如何保证访问到的数据具有完整性的.
- 脏读:
- 一个事务(A)读取到另一个事务(B)中未提交的数据,另一个事务中数据可能进行了改变,此时A事务读取的数据可能和数据库中数据是不一致的,此时认为数据是脏数据,读取脏数据过程叫做脏读.
- 不可重复读:
- 主要针对的是某行数据.(或行中某列)
- 主要针对的操作是修改操作.
- 两次读取在同一个事务内
- 当事务A第一次读取事务后,事务B对事务A读取的淑君进行修改,事务 A 中再次读取的数据和之前读取的数据不一致,过程不可重复读.
- 幻读:
- 主要针对的操作是新增或删除
- 两次事务的结果.事务A按照特定条件查询出结果,事务B新增了一条符合条件的数据.事务 A 中查询的数据和数据库中的数据不一致的,事务 A 好像出现了幻觉,这种情况称为幻读.
- DEFAULT: 默认值,由底层数据库自动判断应该使用什么隔离界别
- READ_UNCOMMITTED: 可以读取未提交数据,可能出现脏读,不重复读,幻读.
- 效率最高.
- READ_COMMITTED:只能读取其他事务已提交数据.可以防止脏读,可能出现不可重复读和幻读.
- REPEATABLE_READ: 读取的数据被添加锁,防止其他事务修改此数据,可以防止不可重复读.脏读,可能出现幻读.
- SERIALIZABLE: 排队操作,对整个表添加锁.一个事务在操作数据时,另一个事务等待事务操作完成后才能操作这个表.
- 最安全的
- 效率最低的.
5. rollback-for=”异常类型全限定路径”
- 当出现什么异常时需要进行回滚
- 建议:给定该属性值.
- 手动抛异常一定要给该属性值.
6. no-rollback-for=””
- 当出现什么异常时不滚回事务.
Spring声明式事务中属性解释相关推荐
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 参考文章: (1)mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 (2)https://www.cnblog ...
- Spring 声明式事务应该怎么学?
1.引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写,它的设计如此巧妙,以至于在使用中几乎感觉不到它的存在,只需要优雅地加一个 @Transactional 注解,一切就都顺理成章地 ...
- Spring 声明式事务在业务开发中容易碰到的坑总结
Spring 声明式事务,在业务开发使用上可能遇到的三类坑,包括: 第一,因为配置不正确,导致方法上的事务没生效.我们务必确认调用 @Transactional 注解标记的方法是 public 的,并 ...
- 【Spring学习笔记 九】Spring声明式事务管理实现机制
什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...
- Spring声明式事务管理、事务的传播行为xml配置
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. <tx:method name="insert*" propagat ...
- java spring 事务_java 事务与spring 声明式事务
Spring声明式事务让我们从复杂的事务处理中得到解脱.使得我们再也无需要去处理获得连接.关闭连接.事务提交和回滚等这些操作.再也无需要我们在与事务相关的方法中处理大量的try-catch-final ...
- Spring声明式事务配置管理方法
/*2011年8月28日 10:03:30 by Rush */ 环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可.添加 ...
- Spring声明式事务管理的配置详解
环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可.添加方法: 点击项目右键->Build Path->Add ...
- spring注解驱动开发-7 Spring声明式事务
Spring 声明式事务 前言 @EnableTransactionManagement AutoProxyRegistrar InfrastructureAdvisorAutoProxyCreato ...
最新文章
- 2022-2028年中国搪胶行业市场深度分析及投资前景分析报告
- 9个value_counts()的小技巧,提高Pandas 数据分析效率
- “领导跳槽想带我走,我要不要跟?”
- git 使用基础使用(书推荐《git版本管理》)
- Windows 08R2 IIS网站架设
- javafx sdk html 布局,JavaFX2开发教程
- 技术人, 请不要封闭自己
- Android 项目中常用到的第三方组件
- 工业机器人入门实用教程_机器学习实用入门
- 无线网络拓扑结构简析
- 高级软件工程第四次作业:两只小熊队团队作业
- LeetCode 605 种花问题
- 多个集合合并成没有交集的集合-实现
- 微信表情图像代表什么意思_电表型号怎么选 型号字母都代表什么意思
- tomcat如何设置账号和密码
- 淘宝分类大全及其分组 (MySql, xls)文件,上下关系,拼写,层级,层级树,提示,2022年2月28日数据
- 斐波那契查找(黄金分割法查找)算法
- Blender学习笔记(3)建模|blender
- 代码实现stable-diffusion模型,你也用AI生成获得一等奖的艺术图
- ajax调用ajax_AJAX即将到来
热门文章
- 微信小程序下载多个图片到本地相册
- android 特殊用户通知用法汇总--Notification源码分析
- 天池龙珠计划训练营——python3
- Linux操作系统-标准IO库(2)
- STC32G单片机驱动1.8寸TFT LCD128X160 ST7735S SPI串口驱动示例
- android平板被放弃,彻底凉了?谷歌撤下Android平板官方主页
- 社会保障法学类毕业论文文献包含哪些?
- SQL_DISTINCT 语句详细用法
- 计算机系迎新主题,计算机系迎新庆国庆晚会异彩纷呈
- Hbase从入门到精通,精心整理的学习笔记,自学党快来瞅一瞅,赶紧收藏吧!