MyBatis中的foreach标签用于在SQL语句中遍历集合,并将集合中的元素逐个应用到SQL语句中。以下是foreach标签的常见用法示例:
1.遍历List或数组:
<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:
<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属性:
<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>