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

Mybatis 批量操作存在则更新或者忽略,不存在则插入

Mybatis 批量操作新增,如果存在重复有下列2种处理方式:

1、存在则忽略代码示例:

    <insert id="insertDuplicateKeyIgnoreList">INSERT IGNORE INTO specs(`status`,`type`,`code`,`name`,`create_time`,`create_by`)VALUES<foreach collection="list" item="item" separator=",">(  #{item.status,jdbcType=INT},#{item.type,jdbcType=INT},#{item.code,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},#{item.createTime,jdbcType=DATETIME},#{item.createBy,jdbcType=VARCHAR} )</foreach></insert>

如果你想知道 INSERT IGNORE 实际影响了多少行,可以使用 SELECT ROW_COUNT():

如:

<insert id="insertDuplicateKeyIgnoreList">INSERT IGNORE INTO specs(`status`,`type`,`code`,`name`,`create_time`,`create_by`)VALUES<foreach collection="list" item="item" separator=",">(  #{item.status,jdbcType=INT},#{item.type,jdbcType=INT},#{item.code,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},#{item.createTime,jdbcType=DATETIME},#{item.createBy,jdbcType=VARCHAR} )</foreach>;SELECT ROW_COUNT();  -- 返回实际插入的行数</insert>

2、存在则更新代码示例:

     INSERT INTO specs(`status`,`type`,`code`,`name`,`create_time`,`create_by`)VALUES<foreach collection="list" item="item" separator=",">(   #{item.status,jdbcType=INT},#{item.type,jdbcType=INT},#{item.code,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},#{item.createTime,jdbcType=DATETIME},#{item.createBy,jdbcType=VARCHAR} )</foreach>ON DUPLICATE  KEY UPDATE<trim prefix="" suffixOverrides=","><foreach collection="list" separator="," item="item"><if test="item.name != null and item.name != ''">`name` = VALUES(name)</if></foreach></trim>

 ON DUPLICATE KEY UPDATE 语句中的“重复键”是指那些定义了唯一性约束的列。这些列可能是:

1. 主键(PRIMARY KEY):表中的主键必须是唯一的。

2. 唯一索引(UNIQUE INDEX):除了主键之外,还可以定义唯一索引,保证某些列的组合是唯一的。

当插入的数据在这些唯一性约束列上与现有数据发生冲突时,MySQL 将不会插入新的记录,而是根据 ON DUPLICATE KEY UPDATE 子句进行相应的更新操作。

总结

INSERT IGNORE:当插入记录违反唯一键约束时,忽略该记录,并继续处理其他记录。

ON DUPLICATE KEY UPDATE:当插入记录违反唯一键约束时,更新已存在的记录。

相关文章:

Mybatis 批量操作存在则更新或者忽略,不存在则插入

Mybatis 批量操作新增&#xff0c;如果存在重复有下列2种处理方式&#xff1a; 1、存在则忽略代码示例&#xff1a; <insert id"insertDuplicateKeyIgnoreList">INSERT IGNORE INTO specs(status,type,code,name,create_time,create_by)VALUES<foreach col…...

「C/C++」C++ STL容器库 之 std::deque 双端队列容器

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

一招教你解决Facebook广告账号问题

这段时间&#xff0c;我们写了很多文章来探讨Facebook的广告账户问题&#xff1a;《Facebook被封号该怎么办》《Facebook二不限、三不限账号是什么》《Facebook海外户&#xff08;三不限&#xff09;和账单户该如何选择》《如何区分真假Facebook三不限海外户》相信看过这些文章…...

MySQL启动报错:InnoDB: Unable to lock ./ibdata1 error

MySQL启动报错&#xff1a;InnoDB: Unable to lock ./ibdata1 error 在OS X环境下MySQL启动时报错&#xff1a; 016-03-03T00:02:30.483037Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 35 2016-03-03T00:02:30.483100Z 0 [Note] InnoDB: Check that you do not alr…...

Linux终端之旅: 打包和压缩

在 Linux 世界中&#xff0c;打包和压缩文件是管理系统资源、传输数据和备份的重要技能。通过命令行工具如 tar、gzip、zip 等&#xff0c;我们可以高效地将多个文件或目录打包为一个文件&#xff0c;并通过压缩减少其体积。接下来&#xff0c;我将记录学习如何利用这些工具&am…...

PDA手持机提升管理效率和准确性

在当今快节奏的商业世界中&#xff0c;管理效率和准确性是企业成功的关键因素。而 PDA 手持机的出现&#xff0c;为企业管理带来了革命性的变革&#xff0c;成为提升管理效率和准确性的有力武器。 PDA 手持机&#xff0c;即个人数字助理手持设备&#xff0c;集数据采集、存储、…...

C++ [项目] 愤怒的小鸟

现在才发现C游戏的支持率这么高&#xff0c;那就发几篇吧 零、前情提要 此篇为 制作,由于他没有CSDN,于是由我代发 一、基本介绍 支持Dev-C5.11版本(务必调为英文输入法),基本操作看游戏里的介绍,怎么做的……懒得说,能看懂就看注释,没有的自己猜,如果你很固执……私我吧 …...

群控系统服务端开发模式-市场分析

刚刚我把群控系统服务端开发模式的文档全部整理了一下&#xff0c;结果发现还缺市场分析这篇文档没有上传&#xff0c;不好意思啦。 一、前言 在互联网高速发展且稳定的时代&#xff0c;营销系统是自运营公司线上最好的系统。加上现在直播行业很火&#xff0c;引流很重要&#…...

智能听诊器革新宠物健康监测

在宠物健康护理领域&#xff0c;智能听诊器的引入标志着一个新时代的开启&#xff0c;它正成为宠物医疗保健的新宠。这款设备通过高精度传感器捕捉宠物的心跳和呼吸声&#xff0c;为宠物主人和兽医提供精确的健康数据。 智能听诊器的即时反馈功能&#xff0c;使得主人能够通过…...

2000-2023年上市公司绿色专利申请授权面板数据

2000-2023年上市公司绿色专利申请授权面板数据 1、时间&#xff1a;2000-2023年 2、来源&#xff1a;国家知识产权局、WPIO清单 3、指标&#xff1a;年份、股票代码、股票简称、行业名称、行业代码、省份、城市、区县、区县代码、上市状态、绿色专利申请总量、绿色发明专利申…...

vue使用xlsx以及file-saver进行下载xlsx文件以及Unit8Array、ArrayBuffer、charCodeAt的使用

先说Unit8Array、ArrayBuffer、charCodeAt的使用下面会用到这三个 Unit8Array&#xff1a;数组类型表示一个 8 位无符号整型数组&#xff0c;创建时内容被初始化为 0。创建完后&#xff0c;可以以对象的方式或使用数组下标索引的方式引用数组中的元素。 new Uint8Array(); //…...

日语表目的的两个句型,柯桥成人零基础日语培训

句型&#xff1a; &#xff08;能做动词的&#xff09;名词&#xff08;或动词连用形&#xff09;に来ました&#xff08;或行きます&#xff09; 例句&#xff1a; わたしは日本へ文学の勉強に来ました。/我是到日本来学习文学的。 翻译&#xff1a; &#xff08;我&#…...

小程序中设置可拖动区域

官方说明文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/movable-area.htmlhttps://developers.weixin.qq.com/miniprogram/dev/component/movable-view.html demo&#xff1a;浮动控件上下移动交互 .wxmx <movable-area><!-- y"…...

前端后台管理开发

1通常项目从头开发&#xff0c;有人是二开&#xff0c;有人是从头&#xff0c;也有人是复制之前人留的。 2通常要自己写就很费时间&#xff0c;多数都是接别人的二手代码继续干&#xff0c;导致很多人没有从头开发的经验&#xff0c;做两三年。 3项目开始一般要选择搭建环境&am…...

GDAL+C#实现矢量多边形转栅格

1. 开发环境测试 参考C#配置GDAL环境&#xff0c;确保GDAL能使用&#xff0c;步骤简述如下&#xff1a; 创建.NET Framework 4.7.2的控制台应用 注意&#xff1a; 项目路径中不要有中文&#xff0c;否则可能报错&#xff1a;can not find proj.db 在NuGet中安装GDAL 3.9.1和G…...

Python 爬虫实战之爬拼多多商品做数据分析

一、项目背景 在电商领域&#xff0c;拼多多作为一家具有广泛影响力的平台&#xff0c;拥有大量的商品信息和用户数据。通过爬取拼多多商品数据并进行分析&#xff0c;可以了解市场趋势、消费者需求以及竞争对手情况&#xff0c;为企业决策和产品优化提供有力支持。 二、技术准…...

爬虫基础

maven pom <dependencies><!--前端jqury--><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.16.1</version></dependency><!--http工具--><dependency><grou…...

HTML3D旋转相册

文章目录 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐...

[linux]快速入门

学习目标 通过学习能够掌握以下的linux操作 操作系统 按照应用领域的不同, 操作系统可以分为几类 桌面操作系统服务器操作系统移动设备操作系统嵌入式操作系统 不同领域的主流操作系统 桌面操作系统 Windows(用户数量最多)MacOS(操作体验好&#xff0c;办公人士首选)Linux…...

域3:安全工程 第6章 密码学与对称密钥算法

---域3主要包括OSG 6、7、8、9、10 章--- 随着信息化时代的推进&#xff0c;网络安全愈发关键。CISSP认证考试中的第6章&#xff0c;专注于密码学与对称密钥算法&#xff0c;这两者是网络安全的核心。 密码学&#xff0c;历经演变&#xff0c;从古代简单的替代密码到现代的复杂…...

PyFluent:重构CFD仿真流程的技术赋能与效能跃迁

PyFluent&#xff1a;重构CFD仿真流程的技术赋能与效能跃迁 【免费下载链接】pyfluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent 在现代工程仿真领域&#xff0c;计算流体动力学&#xff08;CFD&#xff09;技术正经历着从手动操作向自动化流程的深刻转…...

OpenAI Triton项目中的相关技术对比:多面体编译与调度语言

OpenAI Triton项目中的相关技术对比&#xff1a;多面体编译与调度语言 【免费下载链接】triton Development repository for the Triton language and compiler 项目地址: https://gitcode.com/GitHub_Trending/tri/triton 引言 在深度学习编译器领域&#xff0c;OpenA…...

Logisim音乐盒背后的数字电路:计数器、ROM与蜂鸣器如何奏出《终生误》

Logisim音乐盒背后的数字电路&#xff1a;计数器、ROM与蜂鸣器如何奏出《终生误》 当一段熟悉的旋律从蜂鸣器中流淌而出&#xff0c;很少有人会思考这背后隐藏的数字魔法。本文将带您拆解一个基于Logisim的音乐盒设计&#xff0c;揭示计数器如何像指挥家一样协调时序、ROM怎样扮…...

Realtek RTL8125 2.5GbE网卡驱动安装与优化全指南:从识别到调优的完整解决方案

Realtek RTL8125 2.5GbE网卡驱动安装与优化全指南&#xff1a;从识别到调优的完整解决方案 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125…...

Mplus实战:如何用随机截距交叉滞后模型(RI-CLPM)分析心理学纵向数据?

Mplus实战&#xff1a;随机截距交叉滞后模型&#xff08;RI-CLPM&#xff09;在心理学纵向研究中的深度应用 心理学研究中&#xff0c;我们常常需要探索变量间的动态相互作用——比如焦虑和睡眠问题如何相互影响&#xff1f;传统交叉滞后模型&#xff08;CLPM&#xff09;虽然广…...

5大维度重构Windows体验:开源系统优化方案全解析

5大维度重构Windows体验&#xff1a;开源系统优化方案全解析 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atl…...

AIGlasses_for_navigation免配置环境:预置ffmpeg+opencv+torchvision全栈

AIGlasses_for_navigation免配置环境&#xff1a;预置ffmpegopencvtorchvision全栈 1. 引言&#xff1a;让AI视觉开发变得简单 如果你曾经尝试过搭建一个完整的AI视觉处理环境&#xff0c;一定知道那是个多么痛苦的过程&#xff1a;安装CUDA、配置ffmpeg、编译OpenCV、处理各…...

硬件工程师职业发展路径与核心技术解析

硬件工程师的职业发展路径与技术深度探讨1. 行业现状与职业定位1.1 硬件工程师的职责演变现代硬件工程师的职责范围已从传统的电路设计扩展到系统集成、信号完整性分析、EMC设计等多个领域。典型的职责矩阵包括&#xff1a;职责类别传统要求现代扩展要求电路设计原理图绘制、PC…...

ms-swift微调框架入门:快速掌握LoRA微调与模型合并技巧

ms-swift微调框架入门&#xff1a;快速掌握LoRA微调与模型合并技巧 1. 引言 在当今大模型技术快速发展的背景下&#xff0c;如何高效地对大型语言模型进行微调成为了许多开发者和研究者的关注焦点。ms-swift作为一款强大的微调框架&#xff0c;提供了丰富的功能和技术支持&am…...

9大核心优势!Outfit字体全方位应用指南:从安装到精通

9大核心优势&#xff01;Outfit字体全方位应用指南&#xff1a;从安装到精通 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体作为一款专业开源无衬线字体&#xff0c;凭借9种完整字重体…...