返回顶部
首页 > 资讯 > 精选 >springboot编程式事务TransactionTemplate如何使用
  • 416
分享到

springboot编程式事务TransactionTemplate如何使用

2023-07-02 09:07:59 416人浏览 八月长安
摘要

本篇内容主要讲解“SpringBoot编程式事务TransactionTemplate如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot编程式事务TransactionT

本篇内容主要讲解“SpringBoot编程事务TransactionTemplate如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springboot编程式事务TransactionTemplate如何使用”吧!

TransactionTemplate的使用

总结:在类中注入TransactionTemplate,即可在springboot中使用编程式事务。

spring支持编程式事务管理和声明式事务管理两种方式。

编程式事务管理使用TransactionTemplate或者直接使用底层的PlatfORMTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。

声明式事务管理建立在aop之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。对于声明式事务管理,springboot中推荐使用@Transactional注解。

1.为何用?

多数情况下,方法上声明@Transactional注解声明事务即可,简单、快捷、方便,但@Transactional声明式事务的可控性太弱了,只可在方法或类上声明,做不到细粒度的事务控制。

如果一个方法前10条sql都是select查询语句,只有最后2条sql是update语句,那么只对最后2条sql做事务即可。

2.如何用

        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>2.2.0</version>        </dependency>

springboot中引入mybatis-spring-boot-starter依赖包即可。

mybatis-spring-boot-starter依赖包中包含了spring-boot-starter-jdbc的依赖,spring-boot-starter-jdbc中包含DataSourceTransactionManager事务管理器以及自动注入配置类DataSourceTransactionManagerAutoConfiguration。

代码中使用,在使用bean中注入TransactionTemplate即可:

@Servicepublic class TestServiceImpl {    @Resource    private TransactionTemplate transactionTemplate;     public Object testTransaction() {        //数据库查询        dao.select(1);        return transactionTemplate.execute(status -> {            //数据库新增            dao.insert(2);            dao.insert(3);            return new Object();        });    }}

TransactionTemplate简单使用

 public class TransactionTemplateSupport { @Autowiredprivate PlatformTransactionManager transactionManager;private TransactionTemplate requiredTransactionTemplate;protected TransactionTemplate getRequiresNewTransactionTemplate(){if (requiredTransactionTemplate == null){requiredTransactionTemplate = new TransactionTemplate(transactionManager);requiredTransactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED);//requiredTransactionTemplate.setReadOnly(true);//requiredTransactionTemplate.setTimeout(30000);}return requiredTransactionTemplate;} }
 @Servicepublic class TestTransaction extends TransactionTemplateSupport  {     @Autowired    private JdbcTemplate jdbcTemplate ;     @Autowired    private TransactionTemplate transactionTemplate;    // @Transactional    public void test(){         jdbcTemplate.execute("insert into user value (1,'aaa','aaa','aaa')");         int i = 1/0;         jdbcTemplate.execute("insert into user value (2,'aaa','aaa','aaa')");     }      public void test2(){       getRequiresNewTransactionTemplate()      //  transactionTemplate                .execute(new TransactionCallback<Void>() {             @Override            public Void doInTransaction(TransactionStatus status) {                  jdbcTemplate.execute("insert into user value (11,'BBBB','aaa','aaa')");                 int i = 1/0;                 jdbcTemplate.execute("insert into user value (21,'aaa','NNNN','aaa')");                  return null;            }        });    }  }

到此,相信大家对“springboot编程式事务TransactionTemplate如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: springboot编程式事务TransactionTemplate如何使用

本文链接: https://lsjlt.com/news/340857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • springboot编程式事务TransactionTemplate如何使用
    本篇内容主要讲解“springboot编程式事务TransactionTemplate如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot编程式事务TransactionT...
    99+
    2023-07-02
  • springboot编程式事务TransactionTemplate的使用说明
    目录TransactionTemplate的使用1.为何用?2.如何用TransactionTemplate简单使用TransactionTemplate的使用 总结:在类中注入Tr...
    99+
    2024-04-02
  • 使用springboot如何实现开启声明式事务
    这期内容当中小编将会给大家带来有关使用springboot如何实现开启声明式事务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。springboot开启事务很简单,只需要一个注解@Transactional...
    99+
    2023-05-31
    springboot 声明式事务
  • 分布式事务使用Seata的AT事务模式如何理解
    分布式事务使用Seata的AT事务模式如何理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。项目使用了微服务,并且将一些模块进行了拆分,现在遇到了一个批量保存的场景,而且还...
    99+
    2023-06-19
  • SpringBoot中如何使用Dubbo分布式服务
    SpringBoot中如何使用Dubbo分布式服务,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。改造前之前在 SpringBoot 中使用 Dubbox是这样的。先简单记录...
    99+
    2023-06-05
  • springboot整合rocketmq如何实现分布式事务
    这篇文章给大家分享的是有关springboot整合rocketmq如何实现分布式事务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 执行流程(1) 发送方向 MQ 服务端发送消息。(2) MQ Server 将...
    99+
    2023-06-15
  • Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)
    文章目录 1. 事务的定义2. Spring 中事务的实现2.1 MySQL 中使用事务2.2 Spring 中编程式事务的实现2.3 Spring 中声明式事务2.3.1 声明式事务的实现 ...
    99+
    2023-10-02
    spring mysql java 事务 事务传播机制
  • Springboot如何使用Aspectj实现AOP面向切面编程
    目录要在 Springboot中声明 AspectJ 切面引入jar包       网上也有说要在application.properties...
    99+
    2024-04-02
  • 如何使用JS函数式编程Reduce与Map
    本篇内容主要讲解“如何使用JS函数式编程Reduce与Map”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JS函数式编程Reduce与Map”吧!Jav...
    99+
    2024-04-02
  • 如何在 Golang 中使用协程实现事件驱动编程?
    在 golang 中使用协程实现事件驱动编程需要以下步骤:注册事件处理程序,定义处理特定类型事件的函数。创建通道,使用 chan 关键字创建用于发送和接收事件的通道。启动协程,启动一个持...
    99+
    2024-05-21
    协程 事件驱动 golang
  • SpringBoot如何使用protobuf格式的接口方式
    这篇文章主要介绍“SpringBoot如何使用protobuf格式的接口方式”,在日常操作中,相信很多人在SpringBoot如何使用protobuf格式的接口方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-20
  • 如何使用Shell编程
    本篇内容介绍了“如何使用Shell编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基础知识shell执行方式   sh...
    99+
    2023-06-09
  • Spring中编程式事务与声明式事务的区别是什么
    本篇文章为大家展示了Spring中编程式事务与声明式事务的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring事务属性我们都知道事务有开始,保存点,提交,回滚,隔离级别等属性。那么S...
    99+
    2023-05-31
    spring 别是
  • Spring源码解析之编程式事务
    目录一、前言二、编程式事务解析三、编程式事务示例四、TransactionCallback五、TransactionCallbackWithoutResult一、前言 在Sprin...
    99+
    2024-04-02
  • MySQL 如何使用事务
    基础知识 事务是指对一组 SQL 语句进行一个原子化的操作,即如果这一组 SQL 语句中有一条发生错误,那么其他的同组 SQL 就都不会被执行。 你可以把它当作一个测试,当你执行完一组 SQL 语句后,可以查看一下结...
    99+
    2022-05-17
    MySQL 事务 MySQL 使用事务
  • 如何使用MySQL事务
    这篇文章主要为大家展示了如何使用MySQL事务,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。事务的概念MySQL事务是一个或者多个的数据库操作,要么全部执行成...
    99+
    2024-04-02
  • 如何用java编写记事本程序
    要用Java编写记事本程序,可以按照以下步骤进行:1. 创建一个新的Java项目。2. 创建一个主类,命名为"NotePad"或者其...
    99+
    2023-10-07
    java
  • SpringBoot如何实现异步编程
    目录为什么要用异步框架,它解决什么问题?SpringBoot如何实现异步调用?实现异步调用为什么要给@Async自定义线程池?多个线程池处理配置默认线程池小结首先我们来看看在Spri...
    99+
    2024-04-02
  • SpringBoot嵌入式Web容器如何使用
    这篇“SpringBoot嵌入式Web容器如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot嵌入式W...
    99+
    2023-07-04
  • SQLServer存储过程中事务如何使用
    SQLServer存储过程中事务如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体代码如下create pr...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作