<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}} ? 是好用的