本文内容节选自北京尚学堂张佳明老师培训视频

1. name=”” 哪些方法需要有事务控制

  1. 支持*通配符

2. readonly=”boolean” 是否是只读事务.

  1. 如果为 true,告诉数据库此事务为只读事务.数据化优化,会对性能有一定提升,所以只要是查询的方法,建议使用此数据.
  2. 如果为 false(默认值),事务需要提交的事务.建议新增,删除,修改.

3. propagation 控制事务传播行为.

  1. 当一个具有事务控制的方法被另一个有事务控制的方法调用后,需要如何管理事务(新建事务?在事务中执行?把事务挂起?报异常?)
  2. REQUIRED (默认值): 如果当前有事务,就在事务中执行,如果当前没有事务,新建一个事务.
  3. SUPPORTS:如果当前有事务就在事务中执行,如果当前没有事务,就在非事务状态下执行.
  4. MANDATORY:必须在事务内部执行,如果当前有事务,就在事务中执行,如果没有事务,报错.
  5. REQUIRES_NEW:必须在事务中执行,如果当前没有事务,新建事务,如果当前有事务,把当前事务挂起.
  6. NOT_SUPPORTED:必须在非事务下执行,如果当前没有事务,正常执行,如果当前有事务,把当前事务挂起.
  7. NEVER:必须在非事务状态下执行,如果当前没有事务,正常执行,如果当前有事务,报错.NESTED:
  8. 必须在事务状态下执行.如果没有事务,新建事务,如果当前有事务,创建一个嵌套事务.

4. isolation=”” 事务隔离级别

  1. 在多线程或并发访问下如何保证访问到的数据具有完整性的.
  2. 脏读:
    1. 一个事务(A)读取到另一个事务(B)中未提交的数据,另一个事务中数据可能进行了改变,此时A事务读取的数据可能和数据库中数据是不一致的,此时认为数据是脏数据,读取脏数据过程叫做脏读.
  3. 不可重复读:
    1. 主要针对的是某行数据.(或行中某列)
    2. 主要针对的操作是修改操作.
    3. 两次读取在同一个事务内
    4. 当事务A第一次读取事务后,事务B对事务A读取的淑君进行修改,事务 A 中再次读取的数据和之前读取的数据不一致,过程不可重复读.
  4. 幻读:
    1. 主要针对的操作是新增或删除
    2. 两次事务的结果.事务A按照特定条件查询出结果,事务B新增了一条符合条件的数据.事务 A 中查询的数据和数据库中的数据不一致的,事务 A 好像出现了幻觉,这种情况称为幻读.
  5. DEFAULT: 默认值,由底层数据库自动判断应该使用什么隔离界别
  6. READ_UNCOMMITTED: 可以读取未提交数据,可能出现脏读,不重复读,幻读.
    1. 效率最高.
  7. READ_COMMITTED:只能读取其他事务已提交数据.可以防止脏读,可能出现不可重复读和幻读.
  8. REPEATABLE_READ: 读取的数据被添加锁,防止其他事务修改此数据,可以防止不可重复读.脏读,可能出现幻读.
  9. SERIALIZABLE: 排队操作,对整个表添加锁.一个事务在操作数据时,另一个事务等待事务操作完成后才能操作这个表.
    1. 最安全的
    2. 效率最低的.

5. rollback-for=”异常类型全限定路径”

  1. 当出现什么异常时需要进行回滚
  2. 建议:给定该属性值.
    1. 手动抛异常一定要给该属性值.

6. no-rollback-for=””

  1. 当出现什么异常时不滚回事务.

Spring声明式事务中属性解释相关推荐

  1. mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚

    mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 参考文章: (1)mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 (2)https://www.cnblog ...

  2. Spring 声明式事务应该怎么学?

    1.引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写,它的设计如此巧妙,以至于在使用中几乎感觉不到它的存在,只需要优雅地加一个 @Transactional 注解,一切就都顺理成章地 ...

  3. Spring 声明式事务在业务开发中容易碰到的坑总结

    Spring 声明式事务,在业务开发使用上可能遇到的三类坑,包括: 第一,因为配置不正确,导致方法上的事务没生效.我们务必确认调用 @Transactional 注解标记的方法是 public 的,并 ...

  4. 【Spring学习笔记 九】Spring声明式事务管理实现机制

    什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...

  5. Spring声明式事务管理、事务的传播行为xml配置

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. <tx:method name="insert*" propagat ...

  6. java spring 事务_java 事务与spring 声明式事务

    Spring声明式事务让我们从复杂的事务处理中得到解脱.使得我们再也无需要去处理获得连接.关闭连接.事务提交和回滚等这些操作.再也无需要我们在与事务相关的方法中处理大量的try-catch-final ...

  7. Spring声明式事务配置管理方法

    /*2011年8月28日 10:03:30 by Rush  */ 环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可.添加 ...

  8. Spring声明式事务管理的配置详解

    环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可.添加方法: 点击项目右键->Build Path->Add ...

  9. spring注解驱动开发-7 Spring声明式事务

    Spring 声明式事务 前言 @EnableTransactionManagement AutoProxyRegistrar InfrastructureAdvisorAutoProxyCreato ...

最新文章

  1. 2022-2028年中国搪胶行业市场深度分析及投资前景分析报告
  2. 9个value_counts()的小技巧,提高Pandas 数据分析效率
  3. “领导跳槽想带我走,我要不要跟?”
  4. git 使用基础使用(书推荐《git版本管理》)
  5. Windows 08R2 IIS网站架设
  6. javafx sdk html 布局,JavaFX2开发教程
  7. 技术人, 请不要封闭自己
  8. Android 项目中常用到的第三方组件
  9. 工业机器人入门实用教程_机器学习实用入门
  10. 无线网络拓扑结构简析
  11. 高级软件工程第四次作业:两只小熊队团队作业
  12. LeetCode 605 种花问题
  13. 多个集合合并成没有交集的集合-实现
  14. 微信表情图像代表什么意思_电表型号怎么选 型号字母都代表什么意思
  15. tomcat如何设置账号和密码
  16. 淘宝分类大全及其分组 (MySql, xls)文件,上下关系,拼写,层级,层级树,提示,2022年2月28日数据
  17. 斐波那契查找(黄金分割法查找)算法
  18. Blender学习笔记(3)建模|blender
  19. 代码实现stable-diffusion模型,你也用AI生成获得一等奖的艺术图
  20. ajax调用ajax_AJAX即将到来

热门文章

  1. 微信小程序下载多个图片到本地相册
  2. android 特殊用户通知用法汇总--Notification源码分析
  3. 天池龙珠计划训练营——python3
  4. Linux操作系统-标准IO库(2)
  5. STC32G单片机驱动1.8寸TFT LCD128X160 ST7735S SPI串口驱动示例
  6. android平板被放弃,彻底凉了?谷歌撤下Android平板官方主页
  7. 社会保障法学类毕业论文文献包含哪些?
  8. SQL_DISTINCT 语句详细用法
  9. 计算机系迎新主题,计算机系迎新庆国庆晚会异彩纷呈
  10. Hbase从入门到精通,精心整理的学习笔记,自学党快来瞅一瞅,赶紧收藏吧!