MyBatis批量更新SQL

news/2025/3/16 6:23:27/

1 批量更新SQL

当我们需要对MySQL数据库中的数据进行批量更新时,可以采用以下方式进行更新,以下为mybatis配置的SQL语句

<!-- 批量更新,通过 case when语句变相的进行批量更新 --><update id="batchUpdateRecords" parameterType="java.util.List">update table_name<trim prefix="set" suffixOverrides=","><trim prefix="detail_status = case" suffix="end,"><foreach collection="list" item="cus"><if test="cus.detailStatus!=null">when id=#{cus.id} then #{cus.detailStatus}</if></foreach></trim><trim prefix="error_json = case" suffix="end,"><foreach collection="list" item="cus"><if test="cus.errorJson!=null">when id=#{cus.id} then #{cus.errorJson}</if></foreach></trim><trim prefix="change_content = case" suffix="end,"><foreach collection="list" item="cus"><if test="cus.changeContent!=null">when id=#{cus.id} then #{cus.changeContent}</if></foreach></trim><trim prefix="update_time = case" suffix="end,"><foreach collection="list" item="cus"><if test="cus.updateTime!=null">when id=#{cus.id} then #{cus.updateTime}</if></foreach></trim><trim prefix="yn = case" suffix="end,"><foreach collection="list" item="cus"><if test="cus.yn!=null">when id=#{cus.id} then #{cus.yn}</if></foreach></trim></trim><where><foreach collection="list" separator="or" item="cus">id = #{cus.id}</foreach></where></update>

2 批量插入SQL

以下是批量插入的SQL语句

<!-- 插入 --><insert id="batchInsert" parameterType="com.dd.toolbox.manager.po.TransbillPo">INSERT INTO print_transbill (dept_no, dept_name, create_user, create_time, update_user, update_time,transbill_code, box_num_start, box_num_end, box_print_status, print_type, ts, yn)VALUES<foreach collection="list" item="printPo" separator="," close=";">(#{printPo.deptNo,jdbcType=VARCHAR}, #{printPo.deptName,jdbcType=VARCHAR}, #{printPo.createUser,jdbcType=VARCHAR},#{printPo.createTime,jdbcType=TIMESTAMP}, #{printPo.updateUser,jdbcType=VARCHAR}, #{printPo.updateTime,jdbcType=TIMESTAMP},#{printPo.transbillCode,jdbcType=VARCHAR}, #{printPo.boxNumStart,jdbcType=VARCHAR}, #{printPo.boxNumEnd,jdbcType=VARCHAR},#{printPo.boxPrintStatus,jdbcType=VARCHAR},  #{printPo.printType,jdbcType=VARCHAR}, now(), 1)</foreach></insert>

http://www.ppmy.cn/news/1128958.html

相关文章

外包公司干了2个月,整个人不思进取了...

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年8月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年的功能测试…

#硬件电路设计VL817-Q7(B0)芯片拓展USB3.0一转四调试心得

供电电路 基于XL4005的电源供电电路 SS34肖特基二极管 ZMM5V1稳压二极管 SMAJ15A TVS &#xff08;注意这个封装搞错5V会短接&#xff09; Vout0.8*[1(R2R3)/R1] D14 SR05静电防护器件 一路稳压两路TVS 共模电感 &#xff1a; 型号&#xff1a; SDCW2012-2-900TF 品牌&#…

【C语言数据结构】线性表-链式存储-单链表

线性表-链式存储-单链表 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//定义元素数据类型 #define ElemType int//定义结点结构体 typedef struct LNode {//数据域&#xff0c;说白了就是存放当前节点的数据的。ElemType d…

Qt扫盲-QSqlRelationalTableModel 理论总结

QSqlRelationalTableModel 理论总结 一、概述二、使用概述三、常用 一、概述 QSqlRelationalTableModel的行为类似于QSqlTableModel&#xff0c;但允许将列设置为进入其他数据库表的外键。 二、使用概述 在上面左边的截图显示了 QTableView 中的普通 QSqlTableModel。外键(…

c==ubuntu debug c

在 Visual Studio Code (VSCode) 中调试 C 代码&#xff0c;你需要使用适当的扩展&#xff0c;并配置调试环境。以下是一个详细的示例&#xff0c;包括完整的代码、配置步骤和演示。 1. 安装 C/C 扩展&#xff1a; 首先&#xff0c;确保你已安装 Visual Studio Code。然后&am…

Guava Cache使用

1.缓存简介 什么是缓存 程序经常要调用的对象存在内存中&#xff0c;方便其使用时可以快速调用&#xff0c;不必去数据库或者其他持久化设备中查询&#xff0c;主要就是提高性能DNS缓存、前端缓存、代理服务器缓存Nginx、应用程序缓存&#xff08;本地缓存、分布式缓存&#x…

GeoPandas 基本使用

1.GeoPandas是什么 geopandas是一个开源项目&#xff0c;它的目的是使得在Python下更方便的处理地理空间数据。geopandas扩展了pandas的数据类型&#xff0c;允许其在几何类型上进行空间操作。geopandas主要结合了pandas和shapely框架的能力。 shapely 有一个名为 geometry 的类…

二十,镜面IBL--打印BRDF积分贴图

比起以往&#xff0c;这节应该是最轻松的了&#xff0c; 运行结果如下 代码如下&#xff1a; #include <osg/TextureCubeMap> #include <osg/TexGen> #include <osg/TexEnvCombine> #include <osgUtil/ReflectionMapGenerator> #include <osgDB/Re…