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
省流: 在方法上直接加如下注解: Transactional(propagation Propagation.NOT_SUPPORTED) public void t1(){//业务代码 } 正文: 在测试的时候,有时候会希望在for循环中,代码循环一次就提交一次事务。 方法一&#…...
VS2010 C语言内嵌汇编语言程序
VS2010 C语言内嵌汇编语言程序 2021年7月28日席锦 在visual studio 2010中C语言使用内联汇编写代码 ,它的格式有两种, 一种是__asm 直接接汇编指令语句,比如:__asm int 3 // 软件中断 另一种是加上花括号,类似于一个函数&…...
【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模块
板卡概述 TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400(兼容FMQL10S400)的最小系统集成在了一个50*70mm的核心板上,可以作为一个核心模块,进行功能性扩展,特别是用…...
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平台上的专业绘图软件,主要用于创建各种图形,包括流程图、组织结构图、网络拓扑图、UI原型等。该软件提供了强大的绘图工具和丰富的样式库,可以让用户快速创建出高质量的图形,并支持导入和导出各种常…...
Git 本地文件合并和恢复
前记: git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform:Windows 10 Git version:git version 2.32.0.windows.1 Function: Git 本地文件合并和恢复…...
记录git仓库pr没有显示贡献者的问题,以及如何提交一个pr(简)
git config --global --list # 查看全局配置(适用于所有仓库)的信息,可以添加 --global 标志git config --list # 查看你的Git配置git config user.name # 显示您的Git用户名。同样,可以替换 user.name 为其他配置项名称来查看特定…...
入侵检测代码
在人工智能中有个入侵检测:当检测到的目标位于指定区域内才算是入侵,思路很简单,判断相关坐标即可: from matplotlib import pyplot as plt, patches from shapely.geometry import Polygon, Pointdef is_intrusion(target_box, …...
数字孪生技术如何提高化工生产安全性?
随着科技的不断进步,数字孪生技术已经渗透到了各个领域,为化工行业带来了翻天覆地的变革。这一技术的应用不仅在生产效率方面发挥了积极作用,还在安全性、创新、环保和可持续性等多个方面作出了巨大的贡献。 化工行业常常涉及危险品和复杂的生…...
PHP 如何查看php函数源码
一、在git找到php对应的版本 找到对应的分支版本可以下载也可以在线直接查看 通过这个地址 https://github.com/php/php-src 二、下面已shuffle函数举例,版本为7.4 找到对应的版本进入 点击ext,这个文件夹里面是存放函数的目录 在文件夹里搜不到stu…...
前端web自动化测试:selenium怎么实现关键字驱动
要做 ui 自动化测试,使用关键字驱动可以说是必须会的一种测试方式,它既可以在纯代码的自动化程序中运行,也可以在测试平台中使用。 使用纯代码方式时,自动化工程师先写好一个通用的程序,其他手工测试人员只需要把执行…...
C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
数值极限 提供查询所有基础数值类型的性质的接口 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式(例如 int 类型的最大可能值是 std::numeric_limits<int>::m…...
国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能
近日,国际标准性能评估组织SPEC发布新一轮SPEC CPU2017通用算力性能测试榜单,浪潮信息八路服务器TS860G7以3940分获得SPEC CPU创榜以来整机性能最佳成绩,打破了单系统服务器性能世界纪录,较之前的测试最高分提升10%。 SPEC CPU201…...
【linux】重定向+缓冲区
重定向缓冲区 1.重定向1.1重定向本质1.2重定向接口1.3重定向分类1.3.1>输出重定向1.3.2>>追加重定向1.3.3<输入重定向 2.理解 >, >>, <3.如何理解linux下一切皆文件4.缓冲区4.1理解缓冲区问题4.1.1为什么要有缓冲区4.1.2缓冲区刷…...
【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
文章目录 vim 高亮空格使用背景如何配置vim 可以自动显示空格呢?vim highlight 命令使用介绍vim 空白行的处理vim match 命令详细介绍 vim 高亮空格使用背景 开发人员在编写代码之后,在review通过之后会将代码推到服务器然后merge,但是有些代…...
吴恩达深度学习笔记
B站看的视频,课太长了,180多节,但搬运的没有作业练习,最好找个能练习的 1,假设模型时,以前(2011版机器学习)用西塔代表参数组成的向量,现在用w代表参数组成的向量,b代表西塔0&#x…...
基于SpringBoot的医疗预约服务管理系统
基于SpringBootVue的医疗预约服务管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登陆界面 管理员界面 医生界面 会员界面 摘要 基于SpringBoot的…...
Java本地缓存的使用
在项目开发中,经常会碰到一些数据量小、但使用频率极高的数据。比如,团队到BU的映射表。此类数据通常不会变动,使用频率高且数据量较小,如果每次使用都去数据库查询,代价比较大,可以考虑在项目启动时将此类…...
华为数通方向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路由,则以下关于该场景的描述,正…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
