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"
表示参数类型是List
item
当前遍历的元素index
当前遍历的下标,- 当
foreach
遍历的数list
或者数组时,index
代表就是下标, - 当
foreach
遍历map
时index
代表key
,此时item
表示value
。
- 当
open
表示前缀,在遍历开始的地方显示该字符separator
表示分割符,用于分隔每个元素close
表示结束符,遍历结束时显示
- 标签体:
#{item}
表示取出当前遍历的元素.
参考链接
https://www.jianshu.com/p/c9c4a2b95400