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)
上一篇 2022年10月21日 上午9:00
下一篇 2022年10月21日 上午9:00


相关推荐

  • 查看JAVA API以及JAVA源码的方法

    查看JAVA API以及JAVA源码的方法在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码对于java的api,一般是在下面的网址中进行查看https://docs.oracle.com/javase/8/docs/api/而对于java的源码,我们现在来演示查看nextLine()的源码:将鼠标…

    2022年7月26日
    4
  • oracle sqlldr 用法详解

    oracle sqlldr 用法详解转自 http blog chinaunix net uid 23622436 id 2394093 html 在 Oracle 数据库中 我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法 1 A 表的记录导出为一条条分号隔开的 insert 语句 然后执行插入到 B 表中 2 建立数据库间的 dblink 然后用 createtable nbsp Basselect f

    2026年3月17日
    1
  • LinkedHashMap 详解

    LinkedHashMap 详解一 概述概括的说 LinkedHashMa 是一个关联数组 哈希表 它是线程不安全的 允许 key 为 null value 为 null 它继承自 HashMap 实现了 Map K V 接口 其内部还维护了一个双向链表 在每次插入数据 或者访问 修改数据时 会增加节点 或调整链表的节点顺序 以决定迭代时输出的顺序 默认情况 遍历时的顺序是按照插入节点的顺序 这也是其与 HashMap 最 K V

    2026年3月18日
    2
  • 数据结构KMP算法配图详解(超详细)

    数据结构KMP算法配图详解(超详细)前言 KMP 算法是我们数据结构串中最难也是最重要的算法 难是因为 KMP 算法的代码很优美简洁干练 但里面包含着非常深的思维 真正理解代码的人可以说对 KMP 算法的了解已经相当深入了 而且这个算法的不少东西的确不容易讲懂 很多正规的书本把概念一摆出直接劝退无数人 这篇文章将尽量以最简单的方式介绍 KMP 算法以及他的改进 文章的开始我先对 kmp 算法的三位创始人 Knuth Morris Pratt 致敬 懂得这

    2026年3月20日
    2
  • linux查看cuda版本和cudnn版本的命令

    linux查看cuda版本和cudnn版本的命令cuda 版本 nbsp cat usr local cuda version txtcudnn 版本 nbsp cat usr local cuda include cudnn h grepCUDNN MAJOR A2

    2026年3月26日
    2
  • 用python删除文件_python运行另一个py文件

    用python删除文件_python运行另一个py文件python删除文件夹和文件

    2025年7月24日
    4

发表回复

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

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