10.2 MyBatis动态SQL 10.2.5 foreach标签
关于动态SQL另外一个常用的操作就是需要对一个集合进行遍历,通常发生在构建in条件语句时。
xml映射
1 | <select |
foreach标签的功能非常强大,它允许指定一个集合,声明可以用在标签体内的集合项和索引变量。它也允许指定开闭匹配的字符串以及在迭代中间放置分隔符。这个标签是很智能的,因此它不会随机地附加多余的分隔符。
接口方法
1 | List<Employee> seletEmployeeInIdList(List<Integer> ids); |
测试类
1 | public class ForEachTest { |
可以看到,执行的SQL语句是一个in条件语句,返回的是List集合中的id为1,2,3的员工数据。
foreach标签解释
- 标签属性:
collection="list"表示参数类型是Listitem当前遍历的元素index当前遍历的下标,- 当
foreach遍历的数list或者数组时,index代表就是下标, - 当
foreach遍历map时index代表key,此时item表示value。
- 当
open表示前缀,在遍历开始的地方显示该字符separator表示分割符,用于分隔每个元素close表示结束符,遍历结束时显示
- 标签体:
#{item}表示取出当前遍历的元素.
参考链接
https://www.jianshu.com/p/c9c4a2b95400