mybatis。要求查询结果返回一个Map,Map的key为两个字段拼接的值,value为整条记录对应的对象
简单写下实体:
public class RptPlan {
    private String id;
    private String planName;
    private String planNum;
    private String planArea;
    ...构造方法、get set就不写了
}

数据库对应的表:t_rpt_plan

现在需要查询这个表中所有数据,返回一个map,map格式如下:

{
    key(plan_name和plan_num两字段拼接的值) = value(RptPlan对象)
}

这种能实现吗,能实现要XML里要怎么写查询语句。

新手求助,各位大神体谅~~~

0

2个回答

字段映射时,数据库中的列名相当于是你的key,列名是固定的,所以直接映射sql拿到的key也是不能动态的,你可以把你想要的key和value放到sql中的一个字段,然后把这个字段的格式拼接成json格式,尝试下把这个值用map接收下试试,如果不行的话换json接收肯定是可以的;数据量不大的话,把结果拿出来放到java里进行二次处理,处理成你想要的格式也可以,没必要全部放到sql里完成,这样的话数据库的压力会很大,而对java服务来说就是无脑取值;所以建议你把他放到java 程序去处理

0
governi
governi 多谢多谢~~
3 个月之前 回复

目前来看应该不容易嵌入到mybatis处理流程中,需要自己单独编写转map的代码
mybatis resultMap 支持Map类型 但是Map的Key是手动写死的,不能取sql里的值
倒是可以转换成

List<Map<String, Object>> 

形式,仍然需要后置代码解析

0
governi
governi 多谢多谢~~
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mybatis 查询结果返回 Map
map - String, ObjectMyBatis的SqlSession中只有selectMap(String statement, Object parameter, String mapKey),此方法将结果集中指定字段作为key,value则是结果集列表的元素对象们; 创建对象类 public class CountPO { private String companyId;
Map中的value为对象
有一个Map集合,里面存放的是&amp;lt;String,int&amp;gt;类型的数据。北京市_特点152北京市_特点286上海市_特点132长沙市_特点378武汉市_特点250南京市_特点126上海市_特点290想把上述中的特点1、特点2、特点3变成城市的属性,变成Map&amp;lt;String,CityObj&amp;gt;类型,CityObj为对象,有属性特点1、特点2、特点3。转换成:城市特点1特点2特点3北京...
Mybatis 返回map返回两列值 分别为key value
Mybatis 返回map返回两列值 分别为key value 一 先在Mapper.xml 添加key 和 value 的对应值 &lt;resultMap id="mapResultMap" type="HashMap"&gt; &lt;result property="key" column="deviceCode" javaType="java.lang.String" /...
java 通过map的value返回其对应的key (遍历map)
java的map是常用的数据结构,在使用中一般使用key去访问value,但是有时候也会碰到需要用value的值来找到对应的key的情况。 由于map的key是唯一的,所以用key->value不会产生歧义,但是value的值可能会重复,因此通过value来返回key的话会可能会匹配到多个key值,这里我们只考虑使用迭代的方法返回第一个匹配的key值。 import java.util.Has
判断map的key的value是否为空
1.判断map里的一个key的value是否为空。 @Test public void ceshimap(){ HashMap&amp;lt;String, String&amp;gt; map = new HashMap&amp;lt;&amp;gt;(); //这是string类型的 map.put(&quot;hh&quot;,&quot;&quot;); map.put(&quot;tt&quot;,&quot;tt&quot;);
关于map的 一个key对应多个value
NULL 博文链接:https://zzcjobstudy.iteye.com/blog/2066185
Mybatis字段值为空时,不返回map问题
当数据库中该字段下的值为NULL时,mybatis默认不返回该列。可以在mybatis-config.xml中设置 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt; &amp;lt;!DOCTYPE configuration PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot; &quot;http://mybatis.org/dtd...
Mybatis 查询返回类型为Map 空值字段不显示
项目使用的SpringBoot、Mybatis-plus 问题描述如题: 执行sql:select userId,name,address,mobile from user 当address为空时,返回结果map中只有三个字段,userId、name、address 解决方法: 修改yml文件中Mybatis的配置,设置call-setters-on-nulls为true即可 myb...
mybatis 查询返回map
mybatis 查询返回map,key为某一字段,value为实体类
一个key值对应多个value值的Map封装
最近学习并发容器+遇到tomcat的ParameterMap,不由想自己实现一个可以有一个key值对应多个value值的Map。借用ConcurrentHashMap的实现思想,我在一个Map的Value里边一个存放一个新的Map,模拟ConcurrentHashMap的segment来实现上面的需求。代码如下: public static void main(String[] args) ...
mybatis中使用map类型参数,其中key为列名,value为列值, #{params[${key}]}
public interface CrawDao { public void saveNewNews(@Param("params")Map&lt;String, String&gt; params); } &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE mapper ...
ibatis获取对象map属性的对应key的value值
使用ibatis需要在参数中获取到对象map属性值对应key的value值,可以如下进行获取,记下来防止忘记了
Mybatis 查寻结果返回 Map、List〈Map〉
com.jerry.mapper.TestMapper.java package com.jerry.mapper; import java.util.List; import java.util.Map; public interface TestMapper { /** * 查寻单个结果直接返回 Map&amp;amp;amp;amp;lt;String, Object&amp;amp;amp;amp;gt; * @param id * ...
封装查询的两个字段到分别作为map的key和value
Spring 在LinkedCaseInsensitiveMap中添加了private final Map如: LinkedCaseInsensitiveMap.put(&quot;userId&quot;,&quot;aa&quot;);caseInsensitiveKeys对象中就会存在一对值:key=&quot;userid&quot;,value=&quot;userId&quot;LinkedCaseInsensitiveMap实现Map&amp;lt;K,V&amp;gt;接口,...
Mybatis查询结果返回Map、List
当查询结果为单条记录时,可采用如下方式:&amp;lt;select id=&quot;findUserResultMap&quot; parameterType=&quot;int&quot; resultType=&quot;java.util.HashMap&quot;&amp;gt;     SELECT id, username, age FROM user WHERE id = #{id} &amp;lt;/select&amp;gt;返回的Map key为字段名,valu...
Spring boot + MyBatis 查询返回Map时设置值为null的字段也在结果集中
Spring boot + MyBatis 查询返回Map时设置值为null的字段也在结果集中 参考: http://blog.csdn.net/abc_email/article/details/49641073 http://blog.csdn.net/massivestars/article/details/53064158 最近项目中因为直接使用map返
MyBatis查询返回Map时设置值为null的字段也在结果集中
使用Mybatis的查询,很多时候都要返回Map,Mybatis默认若field的值为null时候不返回字段的名称,导致结果集map没有对应的key。 然而很多时候为了前端的使用方便还是要返回字段的key。 若MyBatis一个查询的如下 select id,user_name,user_code from customer where id = #{id} 当查
springboot+mybatis MyBatis查询返回Map时设置值为null的字段没有在结果集中
整合mybatis时设置mybatis:call-setters-on-nulls: true 或者在mybatis的配置文件中加入 &amp;lt;settings&amp;gt; &amp;lt;setting name=&quot;callSettersOnNulls&quot; value=&quot;true&quot;/&amp;gt; &amp;lt;/settings&amp;gt;
MAP实现一个key,对应多个Value值。
最近遇到一个对我来说比较棘手的问题,通过java代码实现读取Execle中的数据存到MAP&amp;lt;String,List&amp;lt;Object(实体类中)&amp;gt;&amp;gt;,虽然不难,但是很久不写,感觉比较生疏,因此将写好的代码分享给大家,以供参考,如有什么问题和好的建议热烈欢迎评论区留言,共同探讨,共同进步。 public static Map&amp;lt;String,List&amp;lt;ExecleEn...
Jackson 处理 Map key 为对象的情况
当使用 jackson 序列化 Map&amp;lt; ObjectA, ObjectB&amp;gt; 对象时,ObjectA 默认会以 toString 的方式来序列化,而在反序列化时,则会直接失败。这个问题,该如何解决呢? jackson 提供额外的接口供我们扩展,网上以 2.x 版本为例的解决方案很多,1.x 的比较少,这里主要说 1.x 版本的解决方案。 在 jackson 里提供了 JsonSer...
map containsKey 对象为key 输出false
test代码,为什么test中的最后一个contain,不是返回true。要怎么让他能返回true。而不false呢rn[code=java]rnFood类中的equals和hascode方法rnpublic boolean equals(Food food) rn if(this.id == food.id)rn return true;rn rn return false;rn rn public int hashCode() rn int result ; rn result = foodName.hashCode(); rn return result; rn rnrnrn@Testrn//测试代码rn public void test5() rn Map map = new HashMap();rn Food f1 = new Food();rn Food f2 = new Food();rn Food f3 = new Food();rn f1.setId(11);rn f2.setId(22);rn f3.setId(11);rn f1.setFoodName("11");rn f2.setFoodName("22");rn f3.setFoodName("11");rn map.put(f1, 22);rn map.put(f2, 2233);rn System.out.println(map.get(f1));rn System.out.println(map.get(f2));rn System.out.println(map.containsKey(f3));rn rn rnrn[/code]rn运行结果rnrn22rn2233rnfalsernrn
mybatis返回map,key为指定属性,value为实体类结果集
实体类: 数据库: CREATE TABLE `job_title_info` ( `_jobtitleid` varchar(255) DEFAULT NULL, `_shortname` varchar(255) DEFAULT NULL, `_fullname` varchar(255) DEFAULT NULL, `_departmentid` varchar(2...
Map之key和value排序
按照value排序,一般排序按照key的话,一般key都是Integer和String,用TreeMap就可以了,另外中方式是把Map按照Map.Entry取出来,放到List里面,然后借助Collectins的sort进行排序。 代码: /** * @author wzx * @time 2018/2/9 */ public class MapSortTest { publ...
获取map的key和value
Map map = new HashMap();   //第一种:普遍使用,二次取值   System.out.println("通过Map.keySet遍历key和value:");   for (String key : map.keySet()) {    System.out.println("key= "+ key + " and value= " + map.get(key
map key and value
map、 key' 和 value 的 取值 and so on
Json数据解析为Map对象
在项目开发中需要把JSon数据转为Map对象,整理成工具,分享如下 /** * Json 转成 Map<> * @param jsonStr * @return */ public static Map getMapForJson(String jsonStr){ JSONObject jsonObject ;
Map获取key值和value值
在写后台的过程中,有时候用到了containsKey,用于判断是否包含key值 获取方法实例 Map map=new HashMap(); map.put(1,"111"); map.put(2,"222"); map.put(3,"333"); Integer key = Integer.valueOf(dataxList); //对于给定的一个String类型的数组,需要判断的时候强制转
遍历map的key和value
public static void main(String[] args) {        Map&amp;lt;String,Integer&amp;gt; map=new HashMap&amp;lt;String,Integer&amp;gt;();        map.put(&quot;a&quot;, 1);        map.put(&quot;b&quot;, 2);        map.put(&quot;c&quot;, 3);        //entr...
map的用法 以及 map的key值和Value值的排序
#include #include #include #include #include using namespace std; typedef pairCustomPair; void print(map& m) {     map::iterator it=m.begin();     for(;it!=m.end();it++)     {         C
Map中取得Map的key值和value值
[code=&quot;java&quot;] //将返回的Map的key 拼成空格隔开的字符串 private static String map2String(List arr){ String str = &quot;&quot;; for (Map m : arr) { Set s = m.keySet(); for (String string : s) { str += stri...
map中key值相等 对应value值加1
public static void main(String[] args) { Map> input = new HashMap>(); List list = new ArrayList(); list.add("《狂人日记》"); list.add("《狂人日记》"); list.add("《狂人日记》"); list.add("《狂人日记》"); input.put("小王"
mybatis返回类型为Map遇到的问题
使用mybatis已经很长时间了,但还是会遇到一些问题,今天就因为业务逻辑需要xml写sql,结果就遇到了一些问题,特此总结。 1、mybatis使用xml查询无法将多个result映射map是无法直接映射的,会抛出多结果集异常:.TooManyResultsException。它只能映射称为List&amp;lt;Map&amp;gt;这种形式,再从代码中组装。 2、或者可以自定义handler来处理 h...
map获取最大值value和其对应的key
public String getMaxStr(Map&amp;lt;String, Integer&amp;gt; map) { int maxV = 0; String maxK = null; String maxK_mayberemove = null;// 中间值,用于保存每次存在的最大值键,但存在下个值比他大,可用他移除掉,替换成最新的值 Map&amp;lt;String, Integer&amp;gt; ...
自定义MyBatis返回Map对象
最近一个项目要进行重构,需要把之前的ibatis转为mybatis,其中有几个方法是需要返回一个Map对象,我就到网上找方法,但找了半天,发现网上的好多都是同时指定Map的Key和Value,但现在项目需求是指指定Key值,而Value为实体类,于是我就把网上的方法进行了改善,代码如下: 1、MapParam.java 需要mybatis返回Map时需要指定参数类型为MapParam,可以通过
mybatis如何遍历Map的key和value
1.sql.xml <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <select id="selectOne" parameterType="java.util.HashMap" resultType="ja
mybatis返回map作为值
 &amp;lt;select id=&quot;selectReturnMap&quot; resultType=&quot;java.util.Map&quot; &amp;gt;         select id,username from t_user     &amp;lt;/select&amp;gt; public List&amp;lt;Map&amp;lt;String,Object&amp;gt;&amp;gt; selectReturnMap();  
Map的key为自定义结构体
近日被问到Map的key为自定义结构体的情况,由于从未使用,特此测试验下,运行及总结情况如下。
Mybatis查询返回map数据
mybatis返回map列表:dao层List&amp;lt;Map&amp;lt;String,Object&amp;gt;&amp;gt; queryMap();xml层:&amp;lt;select id=&quot;queryMap&quot; resultType=&quot;java.util.HashMap&quot;&amp;gt; select user_id,name from user limit 0,10&amp;lt;/select&amp;gt;返回结果[{nam...
hibernate通过sql查询返回一个key value对应的map对象型集合
List result = this.getSession().createSQLQuery(sql) .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
mybatis的查询sql,参数为map
1.将参数封装到map集合中(用param.) service层 String tableName = &quot;userData&quot;; Map&amp;lt;String,Object&amp;gt; params = new HashMap&amp;lt;&amp;gt;(); params.put(&quot;userId&quot;, userId); params.put(&quot;name&quot;, name); List&amp;lt;UserData&amp;gt..

相似问题

9
mybatis 查询的字段为空,返回的实体对象没有改属性
5
MyBatis 查询数组返回[null]
6
mybatis,两个select方法公用一个resultMap,一个TypeHandler,下有详细
9
java1.8,Map<String, String>接收mybatis查询返回来的数据时出错
0
mybatis逆向生成使用example类的条件查询
6
【mybatis】如果程序中查询sql结果为空,会返回null还是空集合
3
Mybatis返回值类型相关问题
1
mybatis 根据第一条sql语句查询的结果决定是否第二次查询?
3
mybatis查询三条没有关联的SQL语句 并把这三条放到同一个map中
4
Mybatis如何查询不同数据对应的记录数并返回,在线等,急
1
mybatis什么情况下执行相同的sql查询语句会使用同一个Sqlsession?设么情况下会创建不同的Sqlsession?
1
在Mybatis下如何使得数据库查询返回类型是一个实体类列表,且能通过整数型下标数随机访问每行指定列的值
2
MySQL中的text类型,在mybatis中JdbcType应该设置什么类型
2
关于Mybatis查询时间精确度的问题
3
mybatis是否支持mysql中的局部变量
3
Map<String,String>接收到了mybatis查询的数据,并且能够获取到里面的int类型的值
1
mybatis查询结果字段与实体类中对应的字段名不相同
2
MyBatis-plus分页条件自定义查询的问题
2
MyBatis操作数据库配置文件修改了,查询结果为什么还是没有变啊,求大神指导
2
mybatis 或 mybatis plus 查询返回null对象的问题怎么解决