当前位置: 首页 > news >正文

for循环中循环一次提交一次 insert update 关闭事务 spring springboot mybatis

省流:

 在方法上直接加如下注解:

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void t1(){//业务代码
}

正文:

在测试的时候,有时候会希望在for循环中,代码循环一次就提交一次事务。

方法一: 

最简单的方式,就是关闭事务,不需要事务。添加注解如下:

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void t1(){//业务代码
}

方法二:

如果说是真的在生产上有这样的需要,每循环一次就提交事务,那就需要手动控制事务了。

需要这几行代码:

            DefaultTransactionDefinition dt = new DefaultTransactionDefinition();dt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);TransactionStatus status = platformTransactionManager.getTransaction(dt);platformTransactionManager.commit(status);

用法如下: 

    @Autowiredprivate PlatformTransactionManager platformTransactionManager;@Testpublic void t1(){for(int i=0; i<list.size(); i++){DefaultTransactionDefinition dt = new DefaultTransactionDefinition();dt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);TransactionStatus status = platformTransactionManager.getTransaction(dt);mapper.select(o);mapper.insert(o);platformTransactionManager.commit(status);}}

具体解读请前往以下两篇文章:

Transactional的7种Propagation:

spring springboot mybatis 事务配置 Transactional的Propagation 开启事务 关闭事务_globalcoding的博客 

开启和关闭事务时sqlsession创建机制,手动控制事务时sqlsession 创建机制:

spring springboot mybatis transaction 开启事务 关闭事务 不使用事务_globalcoding的博客 

=====================分割线========================= 

文章到此已经结束,以下是紫薯补丁

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void t1(){
    //业务代码
}

    @Autowired
    private PlatformTransactionManager platformTransactionManager;
    
    @Test
    public void t1(){
        for(int i=0; i<list.size(); i++){
            DefaultTransactionDefinition dt = new DefaultTransactionDefinition();
            dt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
            TransactionStatus status = platformTransactionManager.getTransaction(dt);
            mapper.select(o);
            mapper.insert(o);
            platformTransactionManager.commit(status);
        }
    }

相关文章:

for循环中循环一次提交一次 insert update 关闭事务 spring springboot mybatis

省流&#xff1a; 在方法上直接加如下注解&#xff1a; Transactional(propagation Propagation.NOT_SUPPORTED) public void t1(){//业务代码 } 正文&#xff1a; 在测试的时候&#xff0c;有时候会希望在for循环中&#xff0c;代码循环一次就提交一次事务。 方法一&#…...

VS2010 C语言内嵌汇编语言程序

VS2010 C语言内嵌汇编语言程序 2021年7月28日席锦 在visual studio 2010中C语言使用内联汇编写代码 &#xff0c;它的格式有两种&#xff0c; 一种是__asm 直接接汇编指令语句&#xff0c;比如:__asm int 3 // 软件中断 另一种是加上花括号&#xff0c;类似于一个函数&…...

【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模块

板卡概述 TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400&#xff08;兼容FMQL10S400&#xff09;的最小系统集成在了一个50*70mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;特别是用…...

css 左右滚轮无缝衔接

最近的项目有做到一个功能 类似跑马灯或者公告栏那种 有文字 也有列表的 所以 写了两种 第一种公告栏文字是用的js 第二种图文类型是用的css 两种方法 记录一下 第一种 纯文字滚动 其实也是根据js去计算dom的宽度 通过js去给css赋值 <div class"div1"><div …...

Hadoop分布式文件系统-HDFS

1.介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。 2.HDFS 设计原理 2.1 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成:...

专业图表绘制软件 OmniGraffle Pro mac v7.22.1中文版软件介绍

OmniGraffle Pro mac是一款Mac平台上的专业绘图软件&#xff0c;主要用于创建各种图形&#xff0c;包括流程图、组织结构图、网络拓扑图、UI原型等。该软件提供了强大的绘图工具和丰富的样式库&#xff0c;可以让用户快速创建出高质量的图形&#xff0c;并支持导入和导出各种常…...

Git 本地文件合并和恢复

前记&#xff1a; git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform&#xff1a;Windows 10 Git version&#xff1a;git version 2.32.0.windows.1 Function&#xff1a; Git 本地文件合并和恢复…...

记录git仓库pr没有显示贡献者的问题,以及如何提交一个pr(简)

git config --global --list # 查看全局配置&#xff08;适用于所有仓库&#xff09;的信息&#xff0c;可以添加 --global 标志git config --list # 查看你的Git配置git config user.name # 显示您的Git用户名。同样&#xff0c;可以替换 user.name 为其他配置项名称来查看特定…...

入侵检测代码

在人工智能中有个入侵检测&#xff1a;当检测到的目标位于指定区域内才算是入侵&#xff0c;思路很简单&#xff0c;判断相关坐标即可&#xff1a; from matplotlib import pyplot as plt, patches from shapely.geometry import Polygon, Pointdef is_intrusion(target_box, …...

数字孪生技术如何提高化工生产安全性?

随着科技的不断进步&#xff0c;数字孪生技术已经渗透到了各个领域&#xff0c;为化工行业带来了翻天覆地的变革。这一技术的应用不仅在生产效率方面发挥了积极作用&#xff0c;还在安全性、创新、环保和可持续性等多个方面作出了巨大的贡献。 化工行业常常涉及危险品和复杂的生…...

PHP 如何查看php函数源码

一、在git找到php对应的版本 找到对应的分支版本可以下载也可以在线直接查看 通过这个地址 https://github.com/php/php-src 二、下面已shuffle函数举例&#xff0c;版本为7.4 找到对应的版本进入 点击ext&#xff0c;这个文件夹里面是存放函数的目录 在文件夹里搜不到stu…...

前端web自动化测试:selenium怎么实现关键字驱动

要做 ui 自动化测试&#xff0c;使用关键字驱动可以说是必须会的一种测试方式&#xff0c;它既可以在纯代码的自动化程序中运行&#xff0c;也可以在测试平台中使用。 使用纯代码方式时&#xff0c;自动化工程师先写好一个通用的程序&#xff0c;其他手工测试人员只需要把执行…...

C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)

数值极限 提供查询所有基础数值类型的性质的接口 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits<int>::m…...

国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能

近日&#xff0c;国际标准性能评估组织SPEC发布新一轮SPEC CPU2017通用算力性能测试榜单&#xff0c;浪潮信息八路服务器TS860G7以3940分获得SPEC CPU创榜以来整机性能最佳成绩&#xff0c;打破了单系统服务器性能世界纪录&#xff0c;较之前的测试最高分提升10%。 SPEC CPU201…...

【linux】重定向+缓冲区

重定向缓冲区 1.重定向1.1重定向本质1.2重定向接口1.3重定向分类1.3.1>输出重定向1.3.2>>追加重定向1.3.3<输入重定向 2.理解 >&#xff0c; >>&#xff0c; <3.如何理解linux下一切皆文件4.缓冲区4.1理解缓冲区问题4.1.1为什么要有缓冲区4.1.2缓冲区刷…...

【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】

文章目录 vim 高亮空格使用背景如何配置vim 可以自动显示空格呢&#xff1f;vim highlight 命令使用介绍vim 空白行的处理vim match 命令详细介绍 vim 高亮空格使用背景 开发人员在编写代码之后&#xff0c;在review通过之后会将代码推到服务器然后merge&#xff0c;但是有些代…...

吴恩达深度学习笔记

B站看的视频&#xff0c;课太长了&#xff0c;180多节&#xff0c;但搬运的没有作业练习&#xff0c;最好找个能练习的 1&#xff0c;假设模型时&#xff0c;以前(2011版机器学习)用西塔代表参数组成的向量&#xff0c;现在用w代表参数组成的向量&#xff0c;b代表西塔0&#x…...

基于SpringBoot的医疗预约服务管理系统

基于SpringBootVue的医疗预约服务管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登陆界面 管理员界面 医生界面 会员界面 摘要 基于SpringBoot的…...

Java本地缓存的使用

在项目开发中&#xff0c;经常会碰到一些数据量小、但使用频率极高的数据。比如&#xff0c;团队到BU的映射表。此类数据通常不会变动&#xff0c;使用频率高且数据量较小&#xff0c;如果每次使用都去数据库查询&#xff0c;代价比较大&#xff0c;可以考虑在项目启动时将此类…...

华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)

第281题 如图所示,某工程师利用4台路由器进行网络互通测试,其中R1、R2、R3部署OSPF (Area0)实现网络互通,R2、R3、R4部署IS-IS(均部署为Level-2路由器)实现网络互通,现在该工程师在R1的OSPF进程中引入直连路由,在R2的IS-IS进程中引入OSPF路由,则以下关于该场景的描述,正…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

scan_mode设计原则

scan_mode设计原则 在进行mtp controller设计时&#xff0c;基本功能设计完成后&#xff0c;需要设计scan_mode设计。 1、在进行scan_mode设计时&#xff0c;需要保证mtp处于standby模式&#xff0c;不会有擦写、编程动作。 2、只需要固定mtp datasheet说明的接口即可&#xf…...