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



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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java 技术是什么?

    Java 技术是什么?Java技术既是一种高级的面向对象的编程语言,也是一个平台。Java技术基于Java虚拟机(Javavirtualmachine,JVM)的概念——这是语言与底层软件和硬件之间的一种转换器。Java语言的所有实现都必须实现JVM,从而使Java程序可以在有JVM的任何系统上运行。Java编程语言(Javaprogramminglanguage)与众不同之

  • 图数据的自监督学习介绍

    图数据的自监督学习介绍深度学习在解决许多复杂的机器学习问题方面一直是一个有趣的课题,特别是最近在图数据方面。然而,大多数的解决方案要么是监督或半监督,高度依赖于数据中的标签,导致过拟合和整体鲁棒性较弱。自监督学习(Self-SupervisedLearning,SSL)是一种很有前途的解决方案,它从无标记数据中挖掘有用的信息,使其成为图数据领域中一个非常有趣的选择。为什么自监督学习更适合图形数据?SSL有助于理解图形数据中存在的结构和属性信息,使用标记数据时可能会忽略这些信息对于现实世界的数据,获取带标签的图形数据非常

  • BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节–开发SP2013工作流应用程序 总结

    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节–开发SP2013工作流应用程序 总结

    2021年12月15日
  • php.ini中allow_url_fopen和allow_url_include的设置

    php.ini中allow_url_fopen和allow_url_include的设置all_url_include在php5.2以后添加,安全方便的设置(php的默认设置)为:allow_url_fopen=on;all_url_include=off;allow_url_fopen=On(允许打开URL文件,预设启用)allow_url_fopen=Off(禁止打开URL文件)allow_url_include=Off(禁止引用URL文件,新版增加功能…

  • spring源码剖析(八)spring整合mybatis原理

    spring源码剖析(八)spring整合mybatis原理MyBatis相信很多人都会使用,但是当MyBatis整合到了spring中,我们发现在Spring中使用更加方便了。既然那么方便,Spring到底为我们做了哪些工作呢,它如何将MyBatis整合到Spring中的呢,Spring在整合MyBatis时候做了哪些封装,以及做了哪些拓展,又是怎么实现这些封装以及拓展的,让我们来打开这一部分的源代码,一探究竟。

  • C语言操作EXCEL文件(读写)[通俗易懂]

    C语言操作EXCEL文件(读写)[通俗易懂]C语言操作EXCEL文件(读写)本文主要介绍通过纯C语言进行EXCEL的读写操作:C语言读操作C语言写操作在之前需要使用C语言读取Excel文件内容的功能,查阅了很多资料,大部分是通过ODBC或者过OLE/COM对Excel表格的读取操作,这变要求在工程中添加类,如CApplicaton及其头文件等,这包括Excel接口、导入类、头文件等。操作十分复杂,当然我也对这种方法进行…

发表回复

您的电子邮箱地址不会被公开。

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