mybatis循环map的一些技巧


标签的用法:

六个参数:

collection:要循环的集合

index:循环索引(不知道啥用。。)

item:集合中的一个元素(item和collection,按foreach循环理解)

open:以什么开始

close:以什么结束

separator:循环内容之间以什么分隔


daoImpl.java:

public Manager selectManager(Map params) throws Exception {
		if(params==null){
			logger.info("!!!异常!!!根据参数查询菜单信息传入的参数为null,返回null");
			return null;
		}
		
		Map f_params=new HashMap();
		f_params.put("params", params);
		
		return (Manager) findForObject("managerMapper.selectManager", f_params);
	}


mapper.xml



------------------下面转载,不完整---------------------------------------------

循环key:

[java]  view plain  copy
  1. "condition.keys" item="k" separator="and">   
  2.     ${k} = #{k}    
  3.    

循环values

[java]  view plain  copy
  1. "condition.values" item="v" separator="and">   
  2.     ${v} = #{v}    
  3.    

循环获取key和值:

[java]  view plain  copy
  1. "condition.keys" item="k" separator="and">   
  2.     <if test="null != condition[k]">    
  3.         ${k} = ${condition[k]}    
  4.     if>  
  5.    

通常我们设置值的时候,会以#{}的方式,而不是${},如下

[java]  view plain  copy
  1. "condition.keys" item="k" separator="and">   
  2.     <if test="null != condition[k]">    
  3.         ${k} = #{condition[k]}    
  4.     if>  
  5.    

但是用这种方式,会发现,取不了值了,${condition[k]}  能取的出值,但#{condition[k]} 取出来的值却实null,正确的写法应该是:

[java]  view plain  copy
  1. "condition.keys" item="k" separator="and">   
  2.     <if test="null != condition[k]">    
  3.         ${k} = #{condition[${k}]}  
  4.     if>  
  5.    

PS:

${k} = #{condition[${k}]} 是不太好用在mybatis3.3下


修改成  ${k} = #{condition.${k}}   是好用的




你可能感兴趣的:(JavaWeb)