关于mybatis返回map集合的操作:

1.mapper.xml中写一个查询返回map的sql

    <select id="findMap" parameterType="com.sxd.swapping.domain.HuaYangArea" resultType="java.util.HashMap">
select
hy.uid,
hy.area_name
from
hua_yang_area AS hy
<where>
<if test="areaPerson != null">
AND hy.area_person &gt;= #{areaPerson}
</if>
</where>
</select>

2.mapper.java 对应接收,注意,这里并不是直接使用Map<>接收,因为sql查出的不是一条数据,而是多条数据,所以是List<Map<>>接收

/**
* mybatis 查询接收map集合
* @param area
* @return
*/
List<Map<String,String>> findMap(HuaYangArea area);

3.错误写法:

错误的写法就是直接读取List中的Map<>

@Override
public Map<String, String> findMap(HuaYangArea entity) {
List<Map<String,String>> list = huaYangAreaMapper.findMap(entity);
Map<String,String> res = new HashMap<>();
for (Map<String, String> stringStringMap : list) {
System.out.println(stringStringMap.toString());
stringStringMap.forEach((k,v)->{
System.out.println("key:"+k+">>>value:"+v);
res.put(k,v);
});
}
return res;
}

这样查询到的结果是:

我们需要看一哈实际List<Map<>>中到底存储的是什么

结果集中存储是按照{字段名1:字段值1,字段名2:字段值2}

而我们其实期望的是{字段值1:字段值2}

4.正确写法:

所以正确的写法应该是

@Override
public Map<String, String> findMap(HuaYangArea entity) {
List<Map<String,String>> list = huaYangAreaMapper.findMap(entity);
Map<String,String> res = new HashMap<>();
for (Map<String, String> stringStringMap : list) {
System.out.println(stringStringMap.toString()); String uid = null;
String areaName = null; for (Map.Entry<String,String> entry:stringStringMap.entrySet()){
if ("uid".equals(entry.getKey())){
uid = entry.getValue();
}else {
areaName = entry.getValue();
}
} res.put(uid,areaName);
}
return res;
}

返回结果:

【mybatis】mybatis中 返回map集合的更多相关文章

  1. mybatis xml中返回map 参看aiwanpai

    <!-- 指定日期活动被创建次数查询结果数据集--> <resultMap id="countPlayTimesMap" type="HashMap&q ...

  2. Mybatis中返回Map

    在Mybatis中,我们通常会像下边这样用: 返回一个结果 User selectOne(User user); <select id="selectOne" paramet ...

  3. java中的Map集合

    Map接口 Map为一个接口.实现Map接口的类都有一个特点:有键值对,将键映射到值的对象. Map不能包含重复的键,每个键可以映射到最多一个值. Map常见的接口方法有: V  put(K key, ...

  4. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  5. ES6中的Map集合(与java里类似)

    Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...

  6. Scala中的Map集合

    1. Map集合 1.1 Scala中的Map介绍 Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的M ...

  7. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  8. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  9. Mybatis返回map集合

    <resultMap id="pieMap" type="HashMap"> <result property="value&quo ...

随机推荐

  1. C#利用WinRAR实现压缩和解压缩

    using System; using Microsoft.Win32; using System.Diagnostics; using System.IO; namespace MSCL { /// ...

  2. 2017多校第6场 HDU 6097 Mindis 计算几何,圆的反演

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个圆心在原点的圆,给定圆的半径,给定P.Q两点坐标(PO=QO,P.Q不在圆外),取圆 ...

  3. WiderFace标注格式转PASCAL VOC2007标注格式

    #coding=utf-8 import os import cv2 from xml.dom.minidom import Document def create_xml(boxes_dict,ta ...

  4. VPS性能测试方法小结(8)

    1.为了能够得到更为准确和详细的有关VPS主机性能测试数据,我们应该多角度.全方位地运行多种VPS性能测试工具来进行检测,同时也要记得排除因本地网络环境而造成的数据结果的错误. 2.VPS主机性能跑分 ...

  5. 使用cmd(黑窗口)敲命令使用远程数据库

    C:\Users\gzz>mysql -h 10.27.104.176 -u root -p mysql

  6. HDU-2243

    考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. 微信小程序~触摸相关事件(拖拽操作、手势识别、多点触控)

    touchstart     手指触摸动作开始 touchmove    手指触摸后移动 touchcancel  手指触摸动作被打断,如来电提醒,弹窗 touchend      手指触摸动作结束 ...

  8. Go语言基础单元测试示例

    这个要熟悉原理,要能写.. 但现在..... 注意,没有main函数,以_test.go结尾,命令go test -v package main import ( "testing" ...

  9. 寻找与网页内容相关的图片(三)网易新闻与qq空间的做法

    寻找与网页相关的图片现在看来无非有两种方式,第一种是网页自己指定,第二种是通过算法推断. 对于网站的内容提供者来说,他自己知道相关的图片在哪,正如前文所述可以在HTML的头部加上META标签,也可以像 ...

  10. PL/SQL 11.6 注册码

    PL/SQL Developer 下载地址:Download PL/SQL Developer 11.0.6 注册码 Product Code:4t46t6vydkvsxekkvf3fjnpzy5wb ...