Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >手动回滚、提交事务

手动回滚、提交事务

作者头像
阿超
发布于 2022-08-16 12:41:40
发布于 2022-08-16 12:41:40
1K00
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

再小的个子,也能给沙漠留下长长的身影;再小的人物,也能让历史吐出重重的叹息。——余秋雨《文化苦旅》

我们可以手动管理事务

首先需要引用两个Bean

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Resource
private TransactionDefinition transactionDefinition;
@Resource
private IArticleEnclosureService articleEnclosureService;

然后是使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      PlatformTransactionManager transactionManager = Objects.requireNonNull(transactionTemplate.getTransactionManager());
      TransactionStatus transactionStatus = transactionManager.getTransaction(transactionDefinition);
if (逻辑执行正确) {
	//提交事务
	transactionManager.commit(transactionStatus);
      } else {
          // 回滚事务
	transactionManager.rollback(transactionStatus);
          // 记录日志
          log.error(e);
      }

或者是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      PlatformTransactionManager transactionManager = Objects.requireNonNull(transactionTemplate.getTransactionManager());
      TransactionStatus transactionStatus = transactionManager.getTransaction(transactionDefinition);
try{
	//提交事务
	transactionManager.commit(transactionStatus);
      } catch (Exception e) {
          // 回滚事务
	transactionManager.rollback(transactionStatus);
          // 记录日志
          log.error(e);
      }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​Java面试系列22-spring(1)优点、IOC、DI、事务等
1.Spring的优点有什么? Spring是分层的架构,你可以选择使用你需要的层而不用管不需要的部分 Spring是POJO编程,POJO编程使得可持续构建和可测试能力提高 依赖注入和IoC使得JD
Java帮帮
2018/03/19
6220
CompletableFuture事务处理
使用CompletableFuture进行异步任务编排时,可能会有事务的支持需求,我们这里可以使用之前我写的手动回滚、提交事务进行处理
阿超
2022/12/11
1.7K0
@Transactional事务是真的好用吗
事务管理在系统开发中举足轻重,Spring提供了精妙细腻的事务管理机制,主要分为编程式事务和声明式事务两大架构。
@派大星
2024/04/07
1570
一文带你掌握Spring事务核心:TransactionDefinition详解!
在上面的例子中,指定了事务的隔离级别为 READ_COMMITTED 和传播行为为 REQUIRES_NEW。总的来说,TransactionDefinition 接口为 Spring 提供了一种统一和灵活的方式来定义和配置事务的各种属性,使开发者能够根据不同的业务需求调整事务的行为。
程序员古德
2024/02/08
2840
一文带你掌握Spring事务核心:TransactionDefinition详解!
Spring事务处理数据库连接和示例
在一个事务处理过程中,Spring会在需要时从连接池中获取一个数据库连接,并在事务结束后将连接返回给连接池。
一凡sir
2023/11/08
3470
Spring事务处理数据库连接和示例
Spring 事务介绍
Spring 本身并不实现事务,Spring 事务的本质还是底层数据库对事务的支持,没有数据库事务的支持,Spring 事务就不会生效。
JMCui
2021/04/02
6950
Spring在多线程环境下如何确保事务一致性
之前,我转载的美团技术团队文章: CompletableFuture进阶篇-外卖商家端API的异步化中介绍了CompletableFuture在实际业务中相关操作,但是文章底部有小伙伴留言说:
大忽悠爱学习
2022/10/24
5.1K5
Spring在多线程环境下如何确保事务一致性
Spring Transaction 管理原理
Spring 使用的都是声明式事务,不过在最开始时 Spring 支持的是编程式事务。本篇讲的是 Spring 最初版本 interface21(以下使用它指代spring的最初版本代码) 实现的事务即编程式事务。因为声明式事务只是提升了易用性,两者的内核是一致的。
Dylan Liu
2019/07/01
6540
Spring 事务
关于理论性的内容,我在之前的一篇文章中介绍过,这里不再过多阐述,这里给出之前文章的链接:Spring 事务管理
希希里之海
2019/08/20
5510
Spring编程式事务详解
使用 PlatformTransactionManager 实现。 如果你选择编程式事务管理,Spring推荐使用 TransactionTemplate。 第二种方法则类似使用JTA的 UserTransaction API (除了异常处理的部分稍微简单点)。
JavaEdge
2021/02/23
6570
【小家Spring】Spring-jdbc的使用以及Spring事务管理的8种方式介绍(声明式事务+编程式事务)
为了使JDBC更加易于使用,Spring 在 JDBC API 上定义了一个抽象层,以此建立一个 JDBC 存取框架
YourBatman
2019/09/03
1.7K0
【小家Spring】Spring-jdbc的使用以及Spring事务管理的8种方式介绍(声明式事务+编程式事务)
SpringBoot事务管理:声明式事务和编程式事务。将Service层的事务执行结果传递出去
在SpringBoot中使用事务很简单,这一篇不是为了讲事务,主要是讲一下一个工具类,将需要加入事务的Service层代码作为参数传递出去并返回事务的执行结果(成功和回滚)。
天涯泪小武
2019/01/17
3.5K0
Spring事务(下)
用来解决并发事务时出现的问题,其使用TransactionDefinition中的静态变量来指定
码农戏码
2021/03/23
8580
全面分析 Spring 的编程式事务管理及声明式事务管理
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。 先决条件 本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做详细解释。另外,您最好掌握数据库的基础知识,虽然这不是必须。 系统需求 要试验这份教程中的工具和示例,硬件配置需求为:至少带有 512M
java达人
2018/01/31
7280
【JavaEE进阶】Spring事务和事务传播机制
Spring 事务是 Spring 框架提供的一种机制,用于管理数据库操作或其他资源的一组相关操作,以确保它们在一个原子、一致、可靠和隔离的执行单元内进行。事务用于维护数据的完整性并支持并发访问数据库时的数据一致性。
xxxflower
2023/10/16
5150
【JavaEE进阶】Spring事务和事务传播机制
Spring的事务详解
在了解嵌套事务之前,可以先看下单个事务在Spring中的处理流程,以便后面可以更清晰地认识嵌套事务的逻辑。
终有救赎
2023/10/16
1700
Spring的事务详解
面试官:Java 多线程怎么做事务控制?一半人答不上来。。
推荐阅读:Spring Cloud Alibaba 杀疯了。。 项目代码基于:MySql 数据,开发框架为:SpringBoot、Mybatis 开发语言为:
Java技术栈
2022/07/26
8.5K3
面试官:Java 多线程怎么做事务控制?一半人答不上来。。
Spring Boot的事务管理(二)
除了上面的示例中使用的@Transactional注解外,我们还可以使用编程式事务管理来管理事务。下面是一个示例代码,演示了如何在Spring Boot中使用编程式事务管理来管理事务:
堕落飞鸟
2023/04/05
2590
Spring5学习笔记Spring事务处理
我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 save() 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。
程序员Leo
2023/09/09
2120
Spring5学习笔记Spring事务处理
Spring源码解析之声明式事务处理
我们看看 Spring 中的事务处理的代码,使用 Spring 管理事务有声明式和编程式两种方式,声明式事务处理通过 AOP 的实现把事物管理代码作为方面封装来横向插入到业务代码中,使得事务管理代码和业务代码解藕。在这种方式我们结合 IoC 容器和 Spirng 已有的FactoryBean 来对事务管理进行属性配置,比如传播行为,隔离级别等。其中最简单的方式就是通过配置 TransactionProxyFactoryBean来实现声明式事物;在整个源代码分析中,我们可以大致可以看到 Spring 实现声明式事物管理有这么几个部分:
I Teach You 我教你
2023/07/18
2370
相关推荐
​Java面试系列22-spring(1)优点、IOC、DI、事务等
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验