Mybatis 批量操作

一, foreach 标签的常用属性

  •             collection:指定要遍历的集合:
  •             list类型的参数会特殊处理封装在map中,map的key就叫list
  •             item:将当前遍历出的元素赋值给指定的变量
  •             separator:每个元素之间的分隔符
  •             open:遍历出所有结果拼接一个开始的字符
  •             close:遍历出所有结果拼接一个结束的字符
  •             index:索引。遍历list的时候是index就是索引,item就是当前值
  •             遍历map的时候index表示的就是map的key,item就是map的值
  •             #{变量名}就能取出变量的值也就是当前遍历出的元素

二, 批量删除

public interface CustomerMapperCustom {
    
	int deleteCustomers(List<Integer> customerids);

 
}
  <delete id="deleteCustomers"  parameterType = "java.util.List">
     delete from im_customer where 1>2
     or CustomerID in
     <foreach item="item" collection="list" open="(" separator="," close=")">
         #{item}
     </foreach>
  </delete>

二, 批量添加

<insert id="insertBatch">
    INSERT INTO t_user (id, name, del_flag) VALUES 
    <foreach collection ="list" item="user" separator =",">
         (#{user.id}, #{user.name}, #{user.delFlag}) 
    </foreach >
</insert>

三, 批量更新

<!-- 批量更新第一种方法,通过接收传进来的参数list进行循环着组装sql -->  
<update id="batchUpdate" parameterType="java.util.Map">  
    <!-- 接收list参数,循环着组装sql语句,注意for循环的写法  
         separator=";" 代表着每次循环完,在sql后面放一个分号  
         item="cus" 循环List的每条的结果集  
         collection="list" list 即为 map传过来的参数key -->  
    <foreach collection="list" separator=";" item="cus">  
        update t_customer set  
        c_name = #{cus.name},  
        c_age = #{cus.age},  
        c_sex = #{cus.sex},  
        c_ceroNo = #{cus.ceroNo},  
        c_ceroType = #{cus.ceroType}  
        where id = #{cus.id}  
    </foreach>  
</update>  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值