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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centOS7 安装nginx并启动

    centOS7 安装nginx并启动 一、下载安装包  cd/usr/local/software (software可能没有,用mkdir创建或者只到local目录下也行)  wgethttp://nginx.org/download/nginx-1.6.2.tar.gz  (选择一个比较稳定的版本下载即可,或者手动下载后,用xshell传到该目录下也行) 二、解压安装  tar-zx…

    2022年5月7日
  • docker安装redis并以配置文件方式启动

    1.获取redis镜像dockerpullredis指定版本号:dockerpullredis:4.0.9不加版本号默认获取最新版本,也可以使用dockersearchredis查看镜像来源2.查看本地镜像dockerimages3.然后启动容器,做映射①创建配置文件目录存放redis.conf…

    2022年4月8日
  • pycharm上如何拉git代码_pycharm版本控制

    pycharm上如何拉git代码_pycharm版本控制pycharm设置git与deployment1、创建project2、vcs创建git目录,指向project目录3、添加git远程地址4、拉取对应分支代码即可5、设置deployment5.1设置SFTP5.2配置信息5.3设置远程服务器文件地址

    2022年8月28日
  • 2022年双非上岸北京理工大学软件工程经验

    2022年双非上岸北京理工大学软件工程经验感想很久之前就想写一篇文章来记录自己这段考研的辛苦历程了,感谢这一路陪伴我的朋友对我的鼓励支持,软工今年是前30去校本部,后35名去唐山研究院,软工相比于前几年来说一直在缩招,20年招95个,21年招74个,今年招65个,所以23今年想报的要做好会缩招的准备,我最终是去了唐山研究院,但是这对我本科双非的学生来说已经知足了。今年2022年被称为考研元年,难度可以说是极其高了,想要上岸不容易,从如今考研的形式来看,未来考研将会越来越难,希望学弟学妹们仔细认真的选择院校,可以通过关注一些公众号像王道论坛,

    2022年6月14日
  • Simulink学习笔记(三)——Simulink自动代码生成(二)「建议收藏」

    前言:   上一篇文章详细学习了如何通过Simulink建立系统模型,进而生成嵌入式代码。本文通过实例进一步加深对代码自动生成的理解和应用。一、建立系统框图      为了方便起见,在这里我们实现一个的简单算法,我们在simulink中建立系统框图如下所示:  在生成代码之前,给k输入一个数,在命令行输入k=3,如下所示:然后配置一些参数,ctrl+E调出Configuration …

    2022年4月10日
  • idea配置运行springboot项目_java项目框架搭建流程

    idea配置运行springboot项目_java项目框架搭建流程IDEA创建springboot项目

    2022年9月12日

发表回复

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

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