mybatis循环map的一些技巧

mybatis循环map的一些技巧原文:http://blog.csdn.net/linminqin/article/details/39154133——————————————-循环key:[java] viewplain copy”condition.keys” item=”k” separator

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

<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);	}

mapper.xml

<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:

[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>   

PS:

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


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



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179584.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML+CSS实现炫酷的登录界面「建议收藏」

    HTML+CSS实现炫酷的登录界面「建议收藏」谢谢大家的支持,您的一键三连是罡罡同学前进的最大动力!一键三连一键三连一键三连一键三连一键三连一键三连HTML+CSS实现炫酷的登录界面上效果图!鼠标点击用户名或密码,字体会向上滑动,调节大小并高亮。鼠标放到登录按钮上,按钮可以高亮!下面是HTML的代码:<!DOCTYPEhtml><htmllang=”zh-CN”> <head> <metacharset=”utf-8″/> <meta

    2022年5月4日
    175
  • License授权方案「建议收藏」

    License授权方案「建议收藏」源码地址:https://github.com/sixj0/license解决的问题:将项目卖给其他公司,需要将jar包在客户的服务器上部署,为了避免客户将项目jar包进行二次售卖,或者…

    2022年7月26日
    13
  • Java设计模式简介(一):创建型模式

    Java设计模式简介(一):创建型模式

    2021年4月8日
    146
  • idea如何部署web项目_net core winform

    idea如何部署web项目_net core winform原文来自http://www.fanganwang.com/Product-detail-item-1206.html,欢迎转载。关键字:WebGrid.NETEnterprise®是一个为ASP.NET平台下WEB开发而设计的高级数据表格控件。WebGrid.NET为复杂的分层次导航交互式企业级信息传输提了全面而先进的功能,它允许用户拥有更多有…

    2022年10月6日
    0
  • java 创建txt_java创建txt文件并存入内容

    java 创建txt_java创建txt文件并存入内容本文实例为大家分享了java创建txt文件并存入内容的具体代码,供大家参考,具体内容如下importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.I…

    2022年6月21日
    29
  • nat模式「建议收藏」

    nat模式「建议收藏」原文链接:https://www.linuxidc.com/Linux/2016-09/135521p2.htm(复制过来只是为了学习方便,如有不妥会立即删除)二、NAT(地址转换模式)刚刚我们说到,如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:在NAT模式中,主机…

    2022年6月29日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号