mybatis记录随便(三)foreach实现in查询

foreach属性:

<foreach collection="list" open="(" close=")" separator="," item="id"  index="i" >
  #{id}
</foreach>

  • collection 必填,值为要选代循环的属性名。这个属性值的情况有很多。 
  • item:变量名,值为从法代对象中取出的每一个值。 
  • index :索引的属性名,在集合数组情况下值为当前索引值 当选代循环的对象是 Map类型时,这个值为 Map 的 key (键值)。 
  • open:整个循环内容开头的字符串
  • close 整个循环内容结尾的字符串。
  • separator :每次循环的分隔符

collection的属性设置方法 (list、array等):
1 . 只有一个数组参数或集合参数 

当参数类型为集合的时候,默认会转换为 Map 类型,井添加一个 key 为 collection的值,如果参数类型是 List 集合,那么就继续添加一个 key 为 list的值。

这样,当 collection=" list ”时, 就能得到这个集合,并对它进行循环操作。

当参数类型为数组的时候,也会转换成 Map 类型,默认的 key 为 array

使用数组参数时,就需要把 foreach 标签中的 collection 属性值设置为 array

上面提到的是数组或集合类型的参数默认的名字。推荐使用@ Par am 来指定参数的名字 ,这时 collection 就设置为通过@ Param 注解指定的名字

2.多个参数

当有多个参数的时候,要使用@ Param 注解给每个参数指定一个名字,因此将 collection 设置为@ Param 注解指定的名字即可 。

3.参数是map

使用 Map 和使用@ Param 注解方式类似,将 collection 指定为对应 Map 中的 key 即可

4.参数是一个对象

这种情况下指定为对象的属性名即可。当使用对象内多层嵌套的对象时,使用属性.属性(集合和数组可以使用下标取值)的方式可以指定深层的属性值。

 

 

posted @ 2019-07-25 20:01  攻城狮~2022  阅读(1453)  评论(0编辑  收藏  举报
所有内容都是自己使用过程的总结,如有不严谨或者不正确的地方,麻烦大家留言指出,一起研讨。