【mybatis】mybatis中 返回map集合
关于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 >= #{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集合的更多相关文章
- mybatis xml中返回map 参看aiwanpai
<!-- 指定日期活动被创建次数查询结果数据集--> <resultMap id="countPlayTimesMap" type="HashMap&q ...
- Mybatis中返回Map
在Mybatis中,我们通常会像下边这样用: 返回一个结果 User selectOne(User user); <select id="selectOne" paramet ...
- java中的Map集合
Map接口 Map为一个接口.实现Map接口的类都有一个特点:有键值对,将键映射到值的对象. Map不能包含重复的键,每个键可以映射到最多一个值. Map常见的接口方法有: V put(K key, ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- ES6中的Map集合(与java里类似)
Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...
- Scala中的Map集合
1. Map集合 1.1 Scala中的Map介绍 Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的M ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- Java中遍历Map集合的四种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Mybatis返回map集合
<resultMap id="pieMap" type="HashMap"> <result property="value&quo ...
随机推荐
- 深入浅出Node.js(一) - 初识Node.js
1.Node.js将Javascript解决不确定性所使用的事件驱动方式引入了进来,因为JS是一门事件驱动的语言,旨在能够对外界的事件作出响应; 2.Node.js中,所有的有关异步的操作,都在同步操 ...
- .net页面实时预览图片
<script type="text/javascript"> //获取上传图片的本地路径 function getPath(obj){ if(obj) { if(na ...
- CF868F Yet Another Minimization Problem
题目描述: 给定一个序列,要把它分成k个子序列.每个子序列的费用是其中相同元素的对数.求所有子序列的费用之和的最小值. 输入格式:第一行输入n(序列长度)和k(需分子序列段数).下一行有n个数,序列的 ...
- beego学习笔记(1)
公司准备开发一个针对塔吊行业的APP. 后台采用微服务,docker容器部署. 准备采用go进行微服务的开发. 采用beego进行restful API的开发. 第一步,访问beego的官方网站: h ...
- GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置
GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...
- 前端读者 | CSS三角形和饼图
@羯瑞 三角形 .triangle{width:0;height:0;border-width:50px;border-style:solid;border-color:red blue green ...
- centos7yum安装tomcat
执行安装命令 [root@localhost ~]# yum -y install tomcat 查询tomcat是否安装成功 [root@localhost ~]# rpm -q tomcat to ...
- vue-music 关于playlist (底部播放列表组件)
建立playlist.vue 组件,在player.vue 组件中引用,点击迷你播放器的播放列表按钮由下至上弹出这个层,所以在player.vue 播放器组件中引用 在playlist.vue 组件中 ...
- redis缓存总结----干货
Redis的概念 Redis是一款内存高速缓存数据库.Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一个key-value存储系统,它支持丰富的数据类 ...
- 公司gitlab不支持ssh时,用http提交代码免密输入方法
由于公司内网22端口被封,只能拨vpn 才能用ssh 提交代码.因此记录以下免密码http(https)提交方式. 修改项目下.git/config 将原来的 http://git.xxx.com/x ...