学习目标:

<update id="updateModelEngineeringSpatialNode" parameterType="com.mxpt.model.manage.domain.ModelEngineeringSpatialNode">update model_engineering_spatial_node<trim prefix="SET" suffixOverrides=","><if test="adcd != null">adcd = #{adcd},</if></trim>where snode_id = #{snodeId}</update>

将上面的这个mybatis的sql改写成按照list进行批量更新,应该如何实现呢?
public int updateBatchModelEngineeringSpatialNode(@Param(“list”) List modelEngineeringSpatialNode);

学习内容:

要将单个更新改为批量更新,可以使用MyBatis的标签。以下是完整的实现代码:

Mapper接口

public interface ModelEngineeringSpatialNodeMapper {int updateBatchModelEngineeringSpatialNode(@Param("list") List<ModelEngineeringSpatialNode> modelEngineeringSpatialNode);
}

XML映射文件

<update id="updateBatchModelEngineeringSpatialNode" parameterType="list"><foreach collection="list" item="item" index="index" open="" close="" separator=";">update model_engineering_spatial_node<trim prefix="SET" suffixOverrides=","><if test="item.adcd != null">adcd = #{item.adcd},</if></trim>where snode_id = #{item.snodeId}</foreach>
</update>

注意事项:

这种批量更新方式实际上是发送多条单独的UPDATE语句,但在一个数据库会话中执行

需要在JDBC连接URL中添加allowMultiQueries=true参数以支持多条SQL语句执行

如果列表很大,可能需要分批处理以避免性能问题

数据量大分批执行:

ServiceImpl模块进行分批执行,数据量较大时,每1000条数据作为一个批次:

/*** 批量节点更新** @param list 需要更新的节点list* @return 结果*/public int updateBatchModelEngineeringSpatialNode(List<ModelEngineeringSpatialNode> list){//由于数据库对于插入字段的限制,在这里对批量插入的数据进行分批处理int num = 0;int batchCount = 1000;for (int i = 0; i < list.size(); i += batchCount) {int end = Math.min(i + batchCount, list.size());num += modelEngineeringSpatialNodeMapper.updateBatchModelEngineeringSpatialNode(list.subList(i, end));}return num;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93291.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93291.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93291.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VOFA+ 显示数据、波形

本篇&#xff0c;以最常用的串口通信作展示&#xff0c;示范如何通过VOFA显示数据波形。 一、VOFA 下载 VOFA 是一款面向嵌入式开发的上位机软件&#xff0c;专注于硬件数据实时可视化与调试。它通过高效协议&#xff08;如FireWater、JustFloat&#xff09;将原始字节流转化为…

MySQL 插入数据提示字段超出范围?一招解决 DECIMAL 类型踩坑

MySQL 插入数据提示字段超出范围&#xff1f;一招解决 DECIMAL 类型踩坑 在日常数据库操作中&#xff0c;我们经常会遇到各种字段类型相关的问题。今天就来聊聊一个常见的错误&#xff1a;插入数据时提示字段值超出范围&#xff0c;以实际案例带你搞懂 MySQL 中 DECIMAL 类型的…

一周学会Matplotlib3 Python 数据可视化-绘制误差条形图

锋哥原创的Matplotlib3 Python数据可视化视频教程&#xff1a; 2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 课程介绍 本课程讲解利用python进行数据可视化 科研绘图-Matplotlib&#xff0c;学习Matplotlib图形参数基本设置&…

JVM垃圾回收器

垃圾回收算法标记-复制缺点&#xff1a;内存利用率低&#xff0c;有一块区域无法使用。标记-清除缺点&#xff1a;1. 效率问题 (如果需要标记的对象太多&#xff0c;效率不高)2. 空间问题&#xff08;标记清除后会产生大量不连续的碎片&#xff09;标记-整理分代收集根据对象存…

科研工具的一些注意事项

Origin Origin导入数据之后&#xff0c;可以考虑 [删除数据连接器…] 导入数据之后&#xff0c;删除数据连接&#xff0c;这样当原来的文件移动之后&#xff0c;就不影响origin文件里面的数据。不然就会出现空白数据&#xff1a;当然&#xff0c;没有数据了也可以加载出来&…

美国服务器环境下Windows容器工作负载智能弹性伸缩

在北美数据中心加速数字化转型的今天&#xff0c;企业客户日益重视Windows容器工作负载的智能化管理。本文将深入探讨基于Azure Stack HCI&#xff08;混合云基础设施&#xff09;的弹性伸缩方案如何突破传统资源调度瓶颈&#xff0c;通过分析指标收集、策略配置、混合云联动三…

欧姆龙CP系列以太网通讯实现上位机与触摸屏监控

一、行业痛点在现代工业生产中&#xff0c;自动化生产线的控制系统的高效性与智能化程度对生产效率和产品质量有着至关重要的影响。然而&#xff0c;许多传统工业生产线中使用的欧姆龙CP系列系列PLC以太网模块&#xff0c;由于自身设计原因&#xff0c;并未配备以太网接口&…

【大语言模型 00】导读

【大语言模型00】导读&#xff1a;你的LLM全栈工程师进阶之路关键词&#xff1a;大语言模型、LLM、Transformer、深度学习、AI工程化、全栈开发、技术路线图摘要&#xff1a;这是一份完整的大语言模型学习指南&#xff0c;涵盖从数学基础到商业落地的200篇深度文章。无论你是AI…

Business Magic

题目描述There are n stores located along a street, numbered from 1 to n from nearest to farthest. Last month, the storek had a net profit of rk . If rk is positive, it represents a profit of rk dollars; if rk is negative, it represents a loss of −rk dolla…

在ubuntu系统上离线安装jenkins的做法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 1.安装java环境和下载war包&#xff1a; Jenkins 依赖于 Java 环境&#xff08;OpenJDK 11 或更高版本&#xff09;&#xff1a; # 安装OpenJDK 11和字体依赖 sudo dpkg -i openjdk-11-jre-headless_*.deb fontconfi…

图像相似度算法汇总及Python实现

下面整理了一些图像相似度算法&#xff0c;可根据不同的需求选择不同的算法&#xff0c;对每种算法进行了简单描述并给出Python实现&#xff1a; 1. 基于像素的算法&#xff1a; (1).MSE(Mean Squared Error)&#xff1a;均方误差&#xff0c;通过计算两幅图像对应像素值差的平…

IO流与单例模式

单例模式 单例模式是指一个类只能有一个对象。 饿汉模式 在单例模式下&#xff0c;在程序开始&#xff08;main函数运行前&#xff09;的时候创建一个对象&#xff0c;这之后就不能再创建这个对象。 class HungryMan { public:static HungryMan* getinstance(){return &ins…

Java设计模式之依赖倒置原则使用举例说明

示例1&#xff1a;司机驾驶汽车 问题场景&#xff1a;司机类直接依赖奔驰车类&#xff0c;新增宝马车需修改司机类代码。 // 未遵循DIP class Benz { public void run() { /*...*/ } } class Driver { public void drive(Benz benz) { benz.run(); } } // 遵循DIP&#xff1a;…

【Docker】openEuler 使用docker-compose部署gitlab-ce

docker-compose配置 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlab.example.comenvironment:GITLAB_OMNIBUS_CONFIG: |# Add any other gitlab.rb configuration here, each on its own lineexternal_url https://gi…

ElasticSearch 父子文档使用简记

一. ES parent-child 文档简介 ES 提供了类似数据库中 Join 联结的实现&#xff0c;可以通过 Join 类型的字段维护父子关系的数据&#xff0c;其父文档和子文档可以单独维护。 二. 父子文档的索引创建与数据插入 ES 父子文档的创建可以分为下面三步&#xff1a; 创建索引 M…

【Linux】编辑器vim的使用

目录 1. vim的基本概念 2. vim的基本使用 3. vim命令模式操作 3.1 移动光标 3.2 删除 3.3 复制 3.4 替换 3.5 撤销 3.6 更改 3.7 跳转 4. vim底行模式操作 4.1 列出行号 4.2 跳到文件中的某行 4.3 查找字符 4.4 保存文件 4.5 离开vim 1. vim的基本概念 Vim&…

《零基础掌握飞算Java AI:核心概念与案例解析》

前引&#xff1a;飞算科技是一家专注于企业级智能化技术服务的公司&#xff0c;核心领域包括AI、大数据、云计算等。其Java AI解决方案主要面向企业级应用开发&#xff0c;提供从数据处理到模型部署的全流程支持&#xff01;飞算Java AI是一款基于人工智能技术的Java开发辅助工…

Chrome腾讯翻译插件transmart的安装

文章目录一、官网地址二、安装过程1. 下载插件2. 解压crx3, chrome安装三、如何使用一、官网地址 腾讯翻译插件官网 二、安装过程 1. 下载插件 点击上面的官网地址&#xff0c;下拉到如图所示chrome插件位置&#xff0c;点击立即下载 2. 解压crx 从压缩文件中解压出crx文…

IOMMU的2级地址翻译机制及多级(2~5)页表查找

IOMMU的2级地址翻译机制及多级(2~5)页表查找 摘要:IOMMU是现代计算机系统中用于I/O设备(如GPU、NIC、网络接口卡)的地址翻译和保护机制,类似于CPU的MMU(Memory Management Unit),但专为设备DMA(Direct Memory Access,直接内存访问)设计。它支持虚拟化环境(…

C++STL标准模板库详解

一、引言STL&#xff08;Standard Template Library&#xff09;是 C 标准库的核心组成部分&#xff0c;其中容器&#xff08;Containers&#xff09; 作为数据存储的基础组件&#xff0c;为开发者提供了丰富的数据结构选择。本文将聚焦 STL 容器的核心类型&#xff0c;结合具体…