MyBatis中的foreach标签用于在SQL语句中遍历集合,并将集合中的元素逐个应用到SQL语句中。以下是foreach标签的常见用法示例:
1.遍历List或数组:
代码语言:javascript复制<select id="findUsersByIds" resultType="User">
SELECT * FROM users
WHERE id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</select>
上述示例中,ids为一个List或数组,通过foreach标签将其中的元素逐个应用到SQL语句中的IN子句中。
2.遍历Map:
代码语言:javascript复制<select id="findUsersByMap" resultType="User">
SELECT * FROM users
WHERE
<foreach item="entry" collection="params" separator="AND">
${entry.key} = #{entry.value}
</foreach>
</select>
上述示例中,params为一个Map,通过foreach标签将其中的键值对逐个应用到SQL语句中的WHERE条件中。
3.使用index属性:
代码语言:javascript复制<select id="batchUpdateUsers" parameterType="List">
<foreach item="user" index="index" collection="users" open="begin;" separator=";" close="end;">
UPDATE users SET name = #{user.name}, age = #{user.age} WHERE id = #{user.id};
</foreach>
</select>