在项目中经常需要遍历数据进行对数据库的操作,在这上也经历了很多坑,所以总结如下
foreach的属性
item:表示集合中每一个元素进行迭代时的别名
collection:foreach要循环的对象
open:foreach代码的开始符号,一般是 ( 和close=")“合用。常用在in(),values()时。该参数可选
separator表示在每次进行迭代之间以什么符号作为分隔 符,
close:foreach代码的关闭符号,一般是 ) 和open=”("合用。常用在in(),values()时。该参数可选。
index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置,map是指定的key值
INSERT INTO
INSERT INTO table ( id, user_id, user_name )
VALUES
<foreach collection="partList" index="index" item="item" separator=",">
(#{item.id},#{item.userId},#{item.userName })
</foreach>
UPDATE
UPDATE table
SET is_delete = 1
WHERE
user_id = #{userId}
<foreach collection="workList" index="index" item="item" separator=",">
AND
work_id = #{item}
</foreach>
SELECT
<select id="countByUserList" resultType="int" parameterType="list">
select count(*) from users
<where>
id in
<foreach item="item" collection="list" separator="," index="">
#{item.id}
</foreach>
</where>
</select>