mybatis返回map结果集 key value_java map.entry

mybatis返回map结果集 key value_java map.entry原文:http://blog.csdn.net/sou_liu/article/details/47755635最近需要用到Mybatis中查询结果集为Map的功能,查了好多资料,最终搞定。其实只需要重写ResultHandler接口,,然后用SqlSession的select方法,将xml里面的映射文件的返回值配置成HashMap就可以了。具体过程如下1、先看看

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

Jetbrains全系列IDE稳定放心使用

其实只需要重写ResultHandler接口,,然后用SqlSession 的select方法,将xml里面的映射文件的返回值配置成 HashMap 就可以了。具体过程如下

1、先看看xml文件怎么配置

 

[html] 

 

  1. <resultMap id=“getAllSetDaysResult”   type=“HashMap”>  
  2.     <result property=“key” column=“SP_FPARAMEKEY” />  
  3.     <result property=“value” column=“SP_FPARAMEVALUE” />  
  4.           
  5. </resultMap>  

 

来看看sql是怎么写的

 

[html]

 

  1. <select id=“getAllSetDays” resultMap=“getAllSetDaysResult”>  
  2. SELECT SP.FPARAMEKEY SP_FPARAMEKEY, SP.FPARAMEVALUE SP_FPARAMEVALUE   
  3.   FROM T_SERVER_PARAMETER SP  
  4.  WHERE SP.FPARAMEKEY IN (‘XXX’)  
  5. </select>  

这里面的property属性列的值,就是你后面实现的ResultHandler 接口返回的map集的key和value,具体看代码

 

2、重写org.apache.ibatis.session 中ResultHandler接口:

 

[java] 

 

  1. public class FblMapResultHandler implements ResultHandler {  
  2.     @SuppressWarnings(“rawtypes”)  
  3.     private final Map mappedResults = new HashMap();  
  4.   
  5.     @SuppressWarnings(“unchecked”)  
  6.     @Override  
  7.     public void handleResult(ResultContext context) {  
  8.         @SuppressWarnings(“rawtypes”)  
  9.         Map map = (Map) context.getResultObject();   
  10.         mappedResults.put(map.get(“key”), map.get(“value”));  // xml 配置里面的property的值,对应的列  
  11.     }  
  12.     public Map getMappedResults() {    
  13.         return mappedResults;    
  14.     }    
  15. }  

3、调用select方法:

 

[java] 

 

  1.        FblMapResultHandler fbl = new FblMapResultHandler();  
  2. getSqlSession().select(NAMESPACE +“getAllSetDays”,fbl);  
  3. @SuppressWarnings(“rawtypes”)  
  4. Map map =fbl.getMappedResults();  
  5. return map;  

此时map里面的key,和value就是我们数据库中表中的对应的两列了.

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

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

(0)
上一篇 2022年10月5日 上午11:36
下一篇 2022年10月5日 上午11:46


相关推荐

  • ipsec iptables_iptables -p

    ipsec iptables_iptables -piptablesiptables[-t表名]命令选项[链名][条件匹配][-j目标动作或跳转]-t表名可以省略,指定规则存放在哪个表中,默认为filter表用于存放相同功能的规则filter表:负责过滤功能能,nat表:网络地址转换功能mangle表:拆解报文做出修改并重新封装的功能raw表:关闭nat表上启用的连接追踪机制命令选项-A在…

    2022年10月7日
    5
  • Java标识符命名规则和规范(含举例)

    Java标识符命名规则和规范(含举例)标识符标识符简单来讲就是可以自己命名一 命名规则标识符可以由大小写英文字母 数字 和 组成不能以数字开头不能使用关键字和保留字 但可以包含关键字和保留字 Mystatic 符合规范 严格区分大小写 长度无限 5 不能使用空格注意 如果不符合命名规则 编译不能通过 二 命名规范包名 多单词组成时所有字母小写 xxyyzz 类名 接口名 多单词组成时 所有字母的首字母大写 XxYyZz 变量名 方法名 多单词组成时 第一个单词首字母小写后面单词首字母大写 xxYyZz 常量名 所有字母大写

    2026年3月17日
    2
  • 利用opacity属性写过渡效果

    利用opacity属性写过渡效果opacity的意思是不透明性,opacity取值范围为0-1;opacity:0;表示完全透明,opacity:1;表示完全不透明。opacity:0于overflow:hidden不同,overflow:hidden会完全消除空间,opacity:0只是视觉上看不到,但是实际上会占用空间,这点我们常用来于:hover一起使用。&lt;!DOCTYPEhtml&gt;&lt;htmll…

    2022年5月25日
    60
  • C语言:求最大公约数和最小公倍数「建议收藏」

    C语言:求最大公约数和最小公倍数「建议收藏」记录自己的c语言学习过程输入两个正整数,分别求出最大公约数和最小公倍数代码:#include&amp;amp;lt;stdio.h&amp;amp;gt;intmain(){ intm,n,a,b; printf(&amp;quot;输入两个正整数:&amp;quot;); scanf(&amp;quot;%d%d&amp;quot;,&amp;amp;amp;m,&amp;amp;amp;n); if(m&am

    2022年5月17日
    46
  • MVC设计模式和三层结构(适合初学者)

    MVC设计模式和三层结构(适合初学者)题外话:我们经常把MVC模式和三层架构联系在一起,一旦让你谈谈MVC设计模式,不可避免的总是会说到三层架构,这对于一些高手和大佬来说并没有什么问题,但是对于一些新手,想要学习MVC设计模式的小白来说,有时候就不太友好了。大多人(包括我)刚开始学的时候,大部分都是看大佬们的博客学习,但是正是如此,被大佬们的博客搞得头晕,很容易将MVC设计模式和三层架构搞混,或者以为是同一个东西,…

    2022年6月25日
    31
  • 文心5.0深度解析:相比GPT-5有哪些优势?参数规模、原生架构与应用实测

    文心5.0深度解析:相比GPT-5有哪些优势?参数规模、原生架构与应用实测

    2026年3月12日
    3

发表回复

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

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