mybatis中foreach在不同场景下的使用整理

mybatis中foreach在不同场景下的使用整理

foreach实现in集合(批量查询)

<select id="" resultType ="">
SELECT * 
FROM sys_user
WHERE id in
<foreach collectioin="list" open="(" close=")" separator="," item="id" index="i">
    #{id}
</foreach>
</select>
foreach包含以下属性
  • collection:必填,值为要迭代循环的属性名。这个属性值得情况有很多。
  • item:变量名,值为从迭代对象中取出每一个值
  • index:索引属性名,在集合数组情况下值为当前索引值,当迭代循环的对象是Map类型时,这个值为Map的Key
  • open:整个循环内容开头的字符串
  • close:整个循环内容结尾的字符串
  • separator:每次循环的分隔符

foreach实现批量插入

INSERT INTO tablename (column-a,column-b,column-c....)
VALUES 
<foreach collection = "list" item="user" separator =",">
(
    #{user.a},#{user.b},#{user.c})
</foreach>

foreach实现批量更新

<update id  ="">
	UPDATE sys_user
	SET
    <foreach collection="_parameter" item="val" index="key" separator = ",">
    	${key} = #{val}
    </foreach>
   WHERE id = #{id}
</update>
  • 注意:这里用的是$符号,key作为列名。对应的值作为该列的值

猜你喜欢

转载自www.cnblogs.com/XtsLife/p/12575709.html
今日推荐