循环foreach标签用法
2018-03-22 15:10
155 查看
参数为单个List集合我们一般的做法是在方法的参数处指定传入的参数名称,在xml中使用的时候,集合的名称要和方法的Param的名称一致,这样便于阅读和理解,然后是在对应的xml文件中使用foreach循环。
java代码如下:
<select id="selectBySth" resultType="SthBean"> select * from table where id in<foreach collection="array" item="item" index="index" open="(" separator="," close=")"> #{item}
</foreach></select>
生成的语句为
在使用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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- c:forEach 标签中varStatus的用法
- JSTL标签用法:<c:choose><c:forEach><c:if><c:when><c:set>
- for循环 forEach 新循环 用法及性能测试
- C标签的Foreach循环简单的使用
- smarty中foreach,section循环注意点及include,insert,literal等用法
- smarty中foreach,section循环注意点及include,insert,literal等用法
- mybatis 中 foreach标签的几种用法
- JSTL 的forEach标签循环迭代集合并逆序输出
- 【转】JSTL标签用法:<c:choose><c:forEach><c:if><c:when><c:set>
- C标签的Foreach循环简单的使用
- <c:foreach> 标签怎么获取循环次数?
- js笔记一:js中forEach,for in,for of循环的用法
- Thinkphp框架Foreach标签用法
- 自定义JSP中的Taglib标签之三简单仿JSTL中带标签体的ForEach循环
- 前端页面c标签之foreach循环
- 深入解析PHP中foreach语句控制数组循环的用法
- JSTL标签用法:<c:choose><c:forEach><c:if><c:when><c:set>
- jstl标签<c:forEach>如何获取循环子级元素值
- SSIS之Foreach循环容器用法
- jsp页面c标签循环map , c:foreach 循环map