简单说明xml⽂件中foreach中collection的含义和⽤法前提:
⼀般出现在mybatis框架中,写sql的xml⽂件中
⽬的:
⽅便在xml⽂件中写含有in的sql;例如:select * from table where name in (“11”,“22”,“33”);
好处:
这样我们就不⽤把每个变量都传值到xml⾥⾯,⽽只要把⼀个集合或者数组传⼊即可
常见样例为:
1 <select id="dynamicForeachTest" parameterType="java.util.List" resultType="Blog">
2          select * from t_blog where id in
3        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
4                #{item}
sql中select是什么意思
5        </foreach>
6    </select>
解释:
在mapper⽂件中,传⼊的集合如下:
List ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
List blogs = blogMapper.dynamicForeachTest(ids);
翻译成正常的sql语句为:
select * from t_blog where id in ("1","2","3");
具体名词:
item表⽰集合中每⼀个元素进⾏迭代时的别名,
index指 定⼀个名字,⽤于表⽰在迭代过程中,每次迭代到的位置,
open表⽰该语句以什么开始,
separator表⽰在每次进⾏迭代之间以什么符号作为分隔 符,
close表⽰以什么结束。
备注:
collection="list" 除了 list,也可以写map,array;道理是⼀样的
参考: