Mybatis foreach 使用与理解(支持Array,List,HashMap及相互嵌套)
Mjing888
9年前
来自: http://my.oschina.net/xiaohelong/blog/608035
Mybatis foreach 使用与理解(支持List<Hashmap<String,String>>)
<foreach collection="param3.field" item="field" separator="," open="(" close=")"> </foreach>对原始语句的理解:
separator是每一条记录输出后面加上这个(最后一条不加)
open,close是将整个foreach的输出进行概括。
collection是列表或者map等源数据集合
item 是元素具体单个
使用说明
参数传递是使用Entity的,所以的参数都是从entity读取属性,pageJoin实体内嵌的分页实体,在这里定义了一个
List<HashMap<string,string>> filter;(注意要把getter,setter生成好,因为是private的,否则就会出错,这一点容易忽略)
使用实例:
<foreach item="item" index="index" collection="pageJoin.filter">
<choose>
<when test="item.type=='field'">
and ${item.field}=#{item.val1}
</when>
<when test="item.type=='range'">
and ${item.field} between #{item.val1} and #{item.val2}
</when>
<otherwise>
<!-- donothing -->
</otherwise>
</choose>
</foreach>