<foreach>标签的用法:
六个参数:
collection:要循环的集合
index:循环索引(不知道啥用。。)
item:集合中的一个元素(item和collection,按foreach循环理解)
open:以什么开始
close:以什么结束
separator:循环内容之间以什么分隔
daoImpl.java:
public Manager selectManager(Map<String, String> params) throws Exception {if(params==null){logger.info("!!!异常!!!根据参数查询菜单信息传入的参数为null,返回null");return null;}Map<String,Object> f_params=new HashMap<String,Object>();f_params.put("params", params);return (Manager) findForObject("managerMapper.selectManager", f_params);}
<select id="selectManager" parameterType="HashMap" resultType="Manager">select * from manager where ISDELETED='0'<foreach collection="params.keys" item="k" open="and" separator="and"> <if test="null != params[k]"> ${k} = #{params.${k}}</if></foreach></select>
------------------下面转载,不完整---------------------------------------------
循环key:
循环values
循环获取key和值:
通常我们设置值的时候,会以#{}的方式,而不是${},如下
但是用这种方式,会发现,取不了值了,${condition[k]} 能取的出值,但#{condition[k]} 取出来的值却实null,正确的写法应该是:
PS:
${k} = #{condition[${k}]} 是不太好用在mybatis3.3下
修改成 ${k} = #{condition.${k}} 是好用的