温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mybatis-plus中使用 mapper如何实现一个foreach循环

发布时间:2020-11-18 14:51:50 来源:亿速云 阅读:395 作者:Leah 栏目:开发技术

mybatis-plus中使用 mapper如何实现一个foreach循环?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

.循环添加

接口处:

mybatis-plus中使用 mapper如何实现一个foreach循环

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

如:

mybatis-plus中使用 mapper如何实现一个foreach循环

mybatis-plus中使用 mapper如何实现一个foreach循环

在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和参数。

循环更新:

mybatis-plus中使用 mapper如何实现一个foreach循环

 <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循环问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI