1.Spring 的事务抽象

Spring提供了一致的事务模型

  • JDBC/Hibernate/Mybatis 操作数据
  • DataSource/JTA 事务

2.事务抽象的核心接口

PlatformTransactionManage

  • DateSourceTransactionManage
  • HibernateTransactionManage
  • JtaTransactionManage

TransactionDefinition

  • Propagation
  • lsolation
  • Timeout
  • Read-only status

3.事务传播特性7个

4.事务隔离特性

5.编程式事务

在spring 提供的事务里面经常用下面两种进行事务的操作

TransactionTemplate

  • TransactionCallback
  • TransactionCallbackWithoutResult

PlatformTransactionManage

  • 可以传入TransactionDefinition

6.测试编程式事务

  1. @SpringBootApplication
  2. public class DemoApplication implements CommandLineRunner {
  3.  
  4. @Autowired
  5. private TransactionTemplate transactionTemplate;
  6.  
  7. @Autowired
  8. private JdbcTemplate jdbcTemplate;
  9.  
  10. public static void main(String[] args) {
  11. SpringApplication.run(DemoApplication.class, args);
  12. }
  13.  
  14. @Override
  15. public void run(String... args) throws Exception {
  16.  
  17. System.out.println("事务执行前---》"+getCount());
  18.  
  19. transactionTemplate.execute(new TransactionCallbackWithoutResult() {
  20.  
  21. @Override
  22. protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
  23.  
  24. //事务执行中
  25. jdbcTemplate.execute("insert into user(id,username,password) values(1,1,1)");
  26. System.out.println("事务执行中---》"+getCount());
  27. //回滚W
  28. transactionStatus.setRollbackOnly();
  29. }
  30. });
  31. System.out.println("事务执行后---》"+getCount());
  32.  
  33. }
  34.  
  35. //统计数据条数
  36. public long getCount() {
  37. return jdbcTemplate.queryForObject("select count(*) from user", Long.class);
  38. }
  39.  
  40. }

7.申明式事务

8.基于注解的配置方式

开启事务注解的方式 @EnableTransactionManagement

@Transactional

  1. transactionManage
  2. propagation
  3. isolation
  4. timeout
  5. readOnly
  6. 判断回滚

9.代码参考:https://gitee.com/mrc1999/SpringBoot-study-book/tree/master/04TransactionTemplate

玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务的更多相关文章

  1. 玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现

    1 spring-jdbc core JdbcTemplate 等相关核心接口和类(核心) datesource 数据源相关的辅助类(内嵌数据源的初始化) object 将基本的JDBC操作封装成对象 ...

  2. 玩转Spring全家桶笔记 02 那些好用的连接池HikariCP

    1.前言 简单了解一下来自日本的一个新起之秀连接池---HikariCP github:https://github.com/brettwooldridge/HikariCP 2.HikariCP为什 ...

  3. Spring全家桶系列–SpringBoot渐入佳境

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 首发地址:https://www.javazhiyin.com/20913.html 萌新:小哥,我在实 ...

  4. Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务

    前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...

  5. 最全153道Spring全家桶面试题,你都碰到过哪些?(含答案解析)

    前言 Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶. 毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,无数的公司选择 Spring 作为基础的 ...

  6. 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...

  7. Spring全家桶–SpringBoot Rest API

    Spring Boot通过提供开箱即用的默认依赖或者转换来补充Spring REST支持.在Spring Boot中编写RESTful服务与SpringMVC没有什么不同.总而言之,基于Spring ...

  8. Spring全家桶系列–SpringBoot之AOP详解

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关 ...

  9. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

随机推荐

  1. 如何防范web前端安全攻击

    一.对于XSS防御: 1.不要信任任何外部传入的数据,针对用户输入作相关的格式检查.过滤等操作,以及转义字符处理.最普遍的做法就是转义输入输出的内容,对于括号,尖括号,斜杠进行转义 function ...

  2. C语言博客06-结构体

    1.本章学习总结 1.1 学习内容总结 结构体如何定义.成员如何赋值 1.结构体的一般形式为: struct 结构体名 { 数据类型 成员名1: 数据类型 成员名2: : 数据类型 成员名n: }: ...

  3. [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列

    只能呵呵哒 [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列 pospay ' and hotelid='${hotelid}'; hhaccount ' and hotelid='$ ...

  4. redis状态详解

    redis查看状态信息 info all|default Info 指定项 server服务器信息 redis_version : Redis 服务器版本 redis_git_sha1 : Git S ...

  5. es6学习4:async和await

    async async函数返回一个 Promise 对象,可以使用then方法添加回调函数.当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句. funct ...

  6. 学习opencv(1)

    目录 CV_8UC3 Scalar--颜色赋值 using namespace cv找不到命名空间 waitKey() getTickCount() 引用 CV_8UC3 a) 存放单通道图像中像素: ...

  7. Ubuntu 16.04与Win10双系统双硬盘安装图解

    一.先做准备工作.建议:在当前系统所在的硬盘上,留一片空的主分区安装Ubuntu系统. 2.划分多大的空间够?安装的过程中需要涉及到分区,为了以免日后重装,我的建议是如下分区:1).5G,主分区,空间 ...

  8. 关于资源获取(请把https改为http)

    所有demo以及资源获取,请把https改为http.

  9. merge同时包含增、改、删

    我们都知道oracle merge可以用来增和改,很少用它来删除.但是有时候我们仍然需要该特性,以提高性能,典型的场景就是将业务库逻辑删除的记录同步到查询库的时候,做真正的物理删除,这个时候merge ...

  10. SSM框架新特性关于用Java配置类完全代替XML

    项目目录结构 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法, 这些方法将会被AnnotationConf ...