您的位置:首页 > 其它

循环foreach标签用法

2018-03-22 15:10 155 查看
参数为单个List集合我们一般的做法是在方法的参数处指定传入的参数名称,在xml中使用的时候,集合的名称要和方法的Param的名称一致,这样便于阅读和理解,然后是在对应的xml文件中使用foreach循环。
java代码如下:
public abstract List<Model> selectBySth(@Param("ids")List<String> ids);
对应的xml代码如下:              
<select id="selectBySth" resultType="SthBean">    select * from table where id in<foreach collection="array" item="item" index="index" open="(" separator="," close=")">    #{item}
</foreach></select>

生成的语句为
select * from table where id in(1,2,3,4,5....)
item
表示集合中每一个元素进行迭代时的别名
index
指定一个名字,用于表示在迭代过程中,每次迭代到的位置
open
表示该语句以什么开始
separator
表示在每次进行迭代之间以什么符号作为分隔符
close
表示以什么结束
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在breast里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key

作者:Nikubenki
链接:https://www.jianshu.com/p/394af18f5c24
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: