【Mybatis】【10】foreach 批量操作

正文:

1,foreach属性

属性是否必选描述
item元素进行迭代时的别名
collection要做迭代的数据集合
separator元素之间的分隔符
open表示该语句以什么开始
close表示该语句以什么结束
index每次迭代到的位置

2,select count(1) from user where id in ( ? , ? ) 

一定要注意到$和#的区别,$的参数直接输出,#的参数会被替换为?,然后传入参数值执行。

<select id="test" resultType="int">  
  select count(1) from user  
  <where>  
    id in  
    <foreach item="item" collection="list" separator="," open="(" close=")" index="">  
      #{item.id}  
    </foreach>  
  </where>  
</select> 

3,select count(1) from user  where col_a = ? and col_b = ?  

<select id="test" resultType="int">  
    select count(1) from user where  
    <foreach item="item" index="key" collection="map" open="" separator="AND" close="">
    ${key} = #{item}
    </foreach>  
</select>

 

4,Oracle :insert into user select ?,? from dual union all select ?,? from dual

<insert id="test">        
    insert into user (id, name)     
    <foreach collection="userList" item="item" separator="UNION ALL">
        select #{item.id}, #{item.name} from user_temp
    </foreach>
</insert>

5,Mysql :insert into user(key, value) values (?, ?) , (?, ?) 

<insert id="test">  
    insert into user(key, value) values  
    <foreach item="item" index="key" collection="map" open="" separator="," close="">
    (#{key}, #{item})
    </foreach>  
</insert> 

参考博客:

Mybatis foreach 批量操作 - jason5186 - 优快云博客
https://blog.youkuaiyun.com/jason5186/article/details/40896043

转载于:https://www.cnblogs.com/huashengweilong/p/11056265.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值