<foreach>
标签的基本语法如下:
<foreach collection="collection" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
参数说明:
collection
:要遍历的集合或数组的引用。例如,你可以引用传入的参数(如list
、array
或map
中的某个 key),或者引用 resultType/resultMap 中的集合属性。item
:每次遍历的元素的别名。在<foreach>
标签体中,你可以使用#{item}
来引用当前遍历到的元素。index
:(可选)表示当前遍历的索引。在<foreach>
标签体中,你可以使用#{index}
来引用当前遍历到的索引。open
:(可选)表示在遍历前输出的字符串,如 SQL 语句中的左括号(
。separator
:(可选)表示遍历的元素之间的分隔符,如 SQL 语句中的逗号,
。close
:(可选)表示在遍历后输出的字符串,如 SQL 语句中的右括号)
。
示例
假设你有一个 List 类型的参数 ids
,你想在 SQL 语句中使用 IN 条件查询多个 ID 的数据,你可以这样写:
<select id="selectByIds" resultType="YourResultType">
SELECT * FROM your_table WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
当你调用这个 selectByIds
方法并传入一个 ID 列表时,MyBatis 会自动将这些 ID 插入到 SQL 语句中,生成类似 SELECT * FROM your_table WHERE id IN (1, 2, 3)
的查询语句。