Mybatis循环map的一些技巧

注:Map类型没有默认的map,所以不能直接写collection="map",如果这么写,需要保证传入的Map参数有@Param("map")注解。


循环key:

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

循环values

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

循环获取key和值:

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值