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.参数是一个对象
这种情况下指定为对象的属性名即可。当使用对象内多层嵌套的对象时,使用属性.属性(集合和数组可以使用下标取值)的方式可以指定深层的属性值。
本篇内容是参考网络教程学习过程中的笔记
开发工作着,生活快乐着,留下总结,相互交流,共同进步
开发工作着,生活快乐着,留下总结,相互交流,共同进步