Mybatis中的foreach用法可以用于动态拼接SQL语句中的IN条件,常用的技巧有:
使用collection属性指定要遍历的集合,例如:<select id="selectUsers" resultType="User"> SELECT * FROM users WHERE id IN <foreach collection="ids" item="id" open="(" separator="," close=")"> #{id} </foreach></select>使用index属性指定索引变量,可以在foreach中获取当前元素的索引,例如:<select id="selectUsers" resultType="User"> SELECT * FROM users WHERE id IN <foreach collection="ids" item="id" index="index" open="(" separator="," close=")"> #{id} - #{index} </foreach></select>使用separator属性指定分隔符,可以在foreach中指定每个元素之间的分隔符,例如:<select id="selectUsers" resultType="User"> SELECT * FROM users WHERE id IN <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach></select>使用item属性指定迭代变量的名称,可以在foreach中使用该变量引用当前元素,例如:<select id="selectUsers" resultType="User"> SELECT * FROM users WHERE id IN <foreach collection="ids" item="id" open="(" separator="," close=")"> #{id} </foreach></select>