foreach
基本语法
xml
<foreach
collection="集合"
item="当前元素"
index="索引"
open="开始"
separator="分隔符"
close="结束">
内容
</foreach>| 属性 | 作用 |
|---|---|
| collection | 集合名称 |
| item | 每一项的变量名 |
| index | 下标(可选) |
| open | 开始符号 |
| separator | 分隔符 |
| close | 结束符号 |
应用
IN集合
xml
<select id="queryByIds" resultType="User">
SELECT * FROM user
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>sql
WHERE id IN (1,2,3)java
List<User> query(@Param("ids") List<Long> ids);批量插入
xml
<insert id="batchInsert">
INSERT INTO user (name, age)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.name}, #{item.age})
</foreach>
</insert>sql
INSERT INTO user (name, age)
VALUES
('张三', 18),
('李四', 20),
('王五', 22)java
int batchInsert(List<User> list);必须判空
需要在Java中对集合进行判空处理:
java
if (list == null || list.isEmpty()) {
return 0;
}
mapper.batchInsert(list);