在MyBatis中,foreach標簽用于循環遍歷集合中的元素,并在SQL語句中動態生成對應的參數。foreach標簽通常用于動態拼接IN語句。
以下是一個foreach標簽的示例用法:
<select id="selectUsersByIds" resultMap="UserResultMap" parameterType="java.util.List">
SELECT * FROM user
WHERE id IN
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
在上面的例子中,foreach標簽中的collection屬性指定了傳入的集合參數,item屬性指定了集合中每個元素的別名,open屬性指定了循環開始時的字符串,separator屬性指定了不同元素之間的分隔符,close屬性指定了循環結束時的字符串。在SQL語句中,會動態生成對應的參數,如:
SELECT * FROM user
WHERE id IN (1, 2, 3)
通過這種方式,可以動態傳入一個List參數,并在SQL語句中根據集合的元素生成對應的條件。