以下内容不需要记忆,了解即可

1.PlatformTransactionManager(平台事务管理器)
PlatformTransactionManager接口是spring的事务管理器,它提供了我们常用的操作事务的方法


1)TransactionStatus getTransaction(TransactionDefination defination):获取事务的状态信息


2)void commit(TransactionStatus status):提交事务


3)void rollback(TransactionStatus status):回滚事务


PlatformTransactionManager是接口类型,不同的Dao层技术则有不同的实现类,例如:Dao层技术是jdbc或者mybatis时:org.springframework.jdbc.datasource.DataSourceTransactionManager;
Dao层技术是hibernate时,org.springframework.orm.hibernate5.HibernateTransactionManager


======================================================================================================

2.TransactionDefinition(事务的定义对象)
如下方法:
1):int getIsolationLevel() :获得事务的隔离级别
2):int getPropogationBehavior():获得事务的传播行为
3):int getTimeout():获得超时时间
4):boolean isReadOnly():是否只读


======================================================================================================

3.事务隔离级别
设置隔离级别,可以解决事务并发产生的问题,如脏读、不可重复读和虚读
影响性能
*ISOLATION_DEFAULT
*ISOLATION_READ_UNCOMMITTED
*ISOLATION_READ_COMMITTED
*ISOLATION_REPEATABLE_READ
*ISOLATION_SERIALIZABLE


======================================================================================================

4.事务传播对象(解决业务调用业务方法时,事务出现统一性问题)
例如:a业务方法调用b业务方法
*REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中,一般的选择(默认值)
b业务方法看a业务方法有没有事务,如果没有,那么b业务方法就新建一个事务;如果a业务方法有事务,就加入到a业务这个事务中


*SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行(没有事务)
a调b,b看a有没有事务,如果有就一块使用有事务,如果没有就以非事务方式运行


*MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常
a调b,如果a没有事务,就抛出异常


*REAUERS_NEW:新建事务,如果当前在事务中,就把当前事务挂起
*NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把事务挂起
*NEVER:以非事务方式运行,如果当前存在事务,抛出异常
*NESTED:如果当前存在事务,则在嵌套事务内执行,如果当前没有事务,则执行REQUIRED类似的操作
*超时时间:默认值是-1,没有超时限制,如果有,以秒位单位进行设置
*是否只读:建议查询时设置为只读


==================================================================================================================
5.TransactionStatus(事务的状态)
boolean hasSavepoint():是否存储回滚点
boolean isCompleted():事务是否完成
boolean isNewTransaction():是否是新事务
boolean isRollbackOnly():事务是否回滚


总结:编程式事务三大对象
1.PlatformTransactionManager
2.TransactionDefinition
3.TransactionStatus

编程式事务控制相关对象相关推荐

  1. 【spring】编程式事务控制

    结构: AccountServiceImpl package com.itheima.service.impl;import com.itheima.dao.IAccountDao; import c ...

  2. Spring→事务、隔离级别、事务传播行为、编程式事务控制、XML配置声明式事务(原始方式)、XML配置声明式事务(基于tx/aop)、@注解配置声明式事务、优势总结

    事务 Spring事务管理 不考虑隔离引发问题 隔离级别 事务传播行为 演示环境搭建 编程式事务控制 XML配置声明式事务(原始方式) XML配置声明式事务(基于tx/aop) @注解配置声明式事务 ...

  3. spring编程式事务控制

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. Spring的编程式事务声明式事务 基于注解的声明式事务控制

    文章目录 Spring中编程式事务 基于XML的声明式事务控制 基于注解的声明式事务控制 Spring集成web环境 Spring中编程式事务 Spring的事务控制可以分为编程式事务控制和声明式事务 ...

  5. 全面分析 Spring 的编程式事务管理及声明式事务管理(转)

    摘要 Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握.本教程从基础知识开始,详细分析了 Spring 事务管理的使用 ...

  6. 全面分析 Spring 的编程式事务管理及声明式事务管理--转

    开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...

  7. Spring事务处理之 编程式事务 和 声明式事务

    对事务概念还不了解的可以先看一下 MySQL事务管理(初步了解) 这篇文章 !!! Spring事务管理学习步骤: 1.掌握Spring事务属性 2.掌握Spring事务核心API 3.掌握Sprin ...

  8. Spring笔记(4) - Spring的编程式事务和声明式事务详解

    一.背景 事务管理对于企业应用而言至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性.就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操作 ...

  9. TransactionTemplate编程式事务

    目录 一.TransactionTemplate相关源码 Spring支持编程式事务和声明式事务: 因为业务1.需要细粒度更高的事务控制:2.需要频繁与其他系统交互 举例:需要从A系统获取数据,根据获 ...

最新文章

  1. java 内存泄漏_Java开发者必须知道的内存泄漏问题
  2. 美少女什么味??竟然还有美少女风味泡面......
  3. 【渝粤教育】国家开放大学2018年春季 8622-22T社会调查研究与方法 参考试题
  4. JAXP进行DOM和SAX解析
  5. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录
  6. 枚举变量的重定义问题
  7. 【Redis】redis 持久化 RDB 和 AOF
  8. 计算机科学与技术范文,计算机科学与技术专业(范文).doc
  9. python解决一些错误换行问题
  10. 3D打印自动支撑算法
  11. 服务器安全基础知识系列(三)关于网页木马
  12. android自定义秒表(精确到0.1秒,带计次功能)
  13. Win7任务管理器显示不全问题解决办法
  14. 计算机科学学院宣传标语,师范学院宣传标语
  15. cc美团_项目注册界面实现
  16. PDF文件怎么转图片格式?转换有技巧
  17. 线性变换及其对应的矩阵
  18. 两款截然不同的摩托车游戏
  19. PIV实验流场流速云图(MALAB contour函数用法)
  20. android 摇杆控件实现RockerView

热门文章

  1. KMP POJ 3461 Oulipo
  2. 1.SharePoint2010初接触
  3. QEMU 1.3 发布,模拟处理器
  4. css箭头超链接,css超链接
  5. antimalware service executable占用内存过高_Win10系统svchost.exe进程占用内存和网速过高的解决方法...
  6. 静态库调用_静态链接和动态链接对比简析
  7. 神经网络 并行预测_研究人员研究了为什么神经网络可以有效地进行预测
  8. python画图零基础入门教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件...
  9. java中怎样导入图片6_java程序员进阶篇之必须掌握的6张思维导图!
  10. 集成android studio,Android Studio集成