关于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. https配置注意细节

    直接将阿里云https的ca配置配置好之后如果不通的话很有可能是防火墙原因造成的,还有就是nginx要用1.10以上版本的

  2. RSA加密解密与加签验签

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.1987年7月首次在美国公布 ...

  3. JS怎么刷新当前页面

    JS怎么刷新当前页面 reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从 ...

  4. Matcher匹配器查找字符串指定内容

    public static void main(String[] args) { String s = "我的手机号码是18988888888,曾经用过18987654321,还用过1881 ...

  5. Django web框架之模板

    1 模板: 什么是模板? html+模板语法 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. 2 模板语法: 1 变量:{{}} 深度查询: 通过句点符号 . 过滤器 filter { ...

  6. hdu 4632(区间dp)

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  7. 数据库SQL调优之"执行计划"【未完待续】

    什么是“执行计划”?“执行计划”怎么用于SQL调优? 内容待添加... 参考文章: [1]写SQL要学会使用"执行计划" by 鹏霄万里展雄飞      

  8. 176. Second Highest Salary

    Write a SQL query to get the second highest salary from the Employee table. +----+--------+ | Id | S ...

  9. Linux下文件属性

    在Linux下输入命令ls -l /etc/termcap /root/install.log,我们经常看到,这后面的一串内容具体是什么含义呢?[root@www ~]# ls -l /etc/ter ...

  10. web前端—css面试题

    1.CSS 选择符有哪些? 2.CSS 优先级的选择过程? 优先级复合就近原则,同权重的情况下有限选择最近的属性. 载入样式的话是以最后载入的定位为准. 优先级: !important > id ...