.循环添加

接口处:

分别是 void 无返回类型 ;有的话是(resultType)返回类型,参数类型(parameterType) list ,

如:

在mapper文件中分别对应ID,参数类型和返回类型。

循环处理,如下:

    <insert id="insertPack" parameterType="java.util.List">insert into t_ev_bu_pack(PACK_CODE,BIN,PACK_PROD_TIME,CREATED_DATE,CREATED_BY,BATTERY_CLASS,SUPPLIER_NAME,TERMINAL_USER)values<foreach collection="list" item="item" index="index" open="" close="" separator=",">(#{item.PACK_CODE},#{item.BIN}, #{item.PACK_PROD_TIME},now(),#{item.CREATED_BY},#{item.BATTERY_CLASS},#{item.SUPPLIER_NAME},#{item.TERMINAL_USER})</foreach></insert>

由于没有返回类型,只有方法ID和参数。

循环更新:

    <update id="updatePack" parameterType="java.util.List"><foreach collection="list" item="item" index="index" open="" close="" separator=";">update t_ev_bu_pack<trim prefix="SET" suffixOverrides=","> <!-- BIN = #{BIN}, --><if test="item.TERMINAL_USER != null and  item.TERMINAL_USER != ''">TERMINAL_USER = #{item.TERMINAL_USER},</if> <if test="item.SUPPLIER_NAME != null and  item.SUPPLIER_NAME != ''">SUPPLIER_NAME = #{item.SUPPLIER_NAME},</if> <if test="item.PACK_PROD_TIME != null and  item.PACK_PROD_TIME != ''">PACK_PROD_TIME = #{item.PACK_PROD_TIME},</if> <if test="item.BATTERY_CLASS != null and  item.BATTERY_CLASS != ''">BATTERY_CLASS = #{item.BATTERY_CLASS},</if> LAST_UPDATED_TIME = now(),LAST_UPDATED_BY = #{item.LAST_UPDATED_BY}</trim>where PACK_CODE = #{item.PACK_CODE}</foreach></update>

貌似有点区别,insert只需要循环取值就行了,update则更复杂点因为SET 后面又‘,’号分隔,这个update 是循环所有数据,每条数据都有一个ID(即根据主键ID修改所以foreach在最外层),而insert只需要循环要插入的值即可(只需要循环传入的数据即可);

自古英雄出炼狱,从来富贵入凡尘。

mybatis-plus -- mapper中foreach循环操作(新增,或修改)相关推荐

  1. oracle大于号怎么用,解决MyBatis的mapper中SQL小于号或大于号报错-tag name expected

    通常写SQL我们都会在Navicat里面写好条件测试没问题之后才会把SQL放到mapper里面,有次我在写Oracle的分页的时候因为用到了<=符号,在Navicat测试的时候是没问题的,但是放 ...

  2. asp.net 中的 主从 新增,修改,删除。

    在asp.net中關於主從新增問題,網絡上很多朋友問起,很多解決的辦法不是很好,關鍵是同步問題,下面是我的做法, 歡迎大家提出更好的辦法. 在主從新增中,主表一筆,從表多筆,在新增,,修改,刪除從表時 ...

  3. MyBatis复杂mapper,根据条件数组中的数据进一步判断、从子查询中进一步筛选数据

    MyBatis复杂mapper,根据条件数组中的数据进一步判断.从子查询中进一步筛选数据 需要从子查询中进一步获取数据,数组中的数据进一步判断 <select id="queryByP ...

  4. Mybatis工作流程,附带mybatis的mapper文件和config配置文件模板。mapper文件和dao接口的关系——xml中的namespace和sql标签id命名要求。

    1. Mybatis工作流程 1.1 使用MySQL创建数据库girls并生成一个表boys,如下图. 1.2 创建该表对应的简单实体类Boys,如下图. 1.3 创建Dao接口以及和接口同名的map ...

  5. Java代码TkMyBatis通用Mapper中新增数据时同时获取自增主键ID,与适用uuid 做主键时获取 id

    一 . MyBatis mapper.xml文件中在xml 1.   加入 这句 :useGeneratedKeys="true" keyProperty="ID&quo ...

  6. idea中 mybatis 的 mapper.xml 新建没有 头文件

    idea中 mybatis 的 mapper.xml 新建没有 头文件 解决步骤: 1.直接 settings 2.直接 选择 MybatisMapper 添加: <?xml version=& ...

  7. 【Mybatis】Mapper文件中sql不等于的写法

    [Mybatis]Mapper文件中sql不等于的写法 认识误区:在xml文件中,是 不能直接使用 < .>.& 的.因为会被语法检查而报错. 正确使用的两种方法 1. 第一种:转 ...

  8. 【转】淮左白衣-解决maven管理SSM中mybatis的mapper文件扫描失败的问题

    本文链接: https://blog.csdn.net/youngyouth/article/details/86468910 好久没有写博客了,11月底来到公司实习,上个月写个小demo,趁此回顾下 ...

  9. Mybatis的mapper文件中涉及大于号小于号等特殊符号使用

    什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBati ...

最新文章

  1. Transformer, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)
  2. 深度学习:神经网络基础知识总结
  3. 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)
  4. Dsp BootLoader的学习
  5. 初学redux笔记,及一个最简单的redux实例
  6. Inception(Pytorch实现)
  7. IO之 随机访问文件(RandomAccessFile)
  8. iPhone 13 Pro苍岭绿真机首曝!网友:这次iPhone被渲染图坑惨了
  9. flowable工作流 流程变量_信也科技工作流平台的技术实践
  10. 1415120000,华为这个数字赞爆!
  11. python描述器descriptor_python装饰器decorator、描述器descriptor
  12. StringBuilder使用方法
  13. Perl脚本使用小总结
  14. 实时全局光照Screen Space Reflection (SSR)
  15. 配电网重构知识及matlab实现
  16. okhttp实现连接池原理
  17. 务器性能变慢 c盘temp文件夹存在大量sess开头文件的问题原因
  18. FAT文件系统(stm32)
  19. C# 模拟POST上传图片
  20. 钱文品 | 《Redis在海量数据和高并发下的优化实践》主题分享

热门文章

  1. linux同内核覆盖,Linux内核代码覆盖率 – GCOV
  2. 西瓜书+实战+吴恩达机器学习(二三)EM算法和变分推断
  3. Nginx源码阅读笔记-内存池的设计
  4. 白噪音和粉红噪音煲机_白噪音app体验报告
  5. android studio grandle错误,flutter android studio构建失败
  6. php ci base url,CodeIgniter中base_url问题
  7. Layui表单账号注册校验密码是否一致
  8. MyBatis3源码解析(1)探索准备
  9. 计算机智能测试与机电工程学,机电工程学院智能技术创新团队论文被国际计算机视觉顶级会议ICCV录用...
  10. java 弹幕游戏_JAVA 弹幕小游戏 1.0版本