目录

  • 场景一、将结果对象存入map对象
  • 场景二、将查出数据的其中一列作为map的key,整条数据对象作为map的value

场景一、将结果对象存入map对象

使用场景

查询结果未定义实体类,也不想为它单独定义一个实体类

使用效果
表的字段名对应map中的key字段所属的值对应map中的value

Mapper接口

public interface UserMapper {Map<String, Object> selectUserById(int id);List<Map<String, Object>> selectUserList();
}

Mapper xml

<mapper namespace="top.jiug.mybatis.mapper.UserMapper"><select id="selectUserById" resultType="map">select id,name,id_card_num,age from t_user where id=#{id}</select><select id="selectUserList" resultType="map">select id,name,id_card_num,age from t_user </select>
</mapper>

查询结果

selectUserById:
{id:1,name:"keffett",id_card_num:"XXX...",age:18
}
selectUserList:
[{id:1,name:"keffett",id_card_num:"XXX...",age:18},...
]

注意
1、Mapper接口中报红@MapKey is required不影响程序运行,强迫症者可以百度解决;
2、查询字段名作为map中的key并不会将下划线命名转为驼峰命名,如果想要结果为驼峰命名,可通过别名,例如id_card_num as idCardNum

场景二、将查出数据的其中一列作为map的key,整条数据对象作为map的value

使用场景

将查询结果存入map,方便通过某个属性值 (map的key) 快速的获取对象

Mapper接口

public interface UserMapper {@MapKey("idCardNum")Map<String,User> selectMapUseCardNum();
}

Mapper xml

<mapper namespace="top.jiug.mybatis.mapper.UserMapper"><resultMap type="top.jiug.mybatis.model.User" id="userMapping"><result property="id"    column="id"    /><result property="name"    column="name"    /><result property="idCardNum"    column="id_card_num"    /><result property="age"    column="age"    /></resultMap><select id="selectIdCardNum" resultMap="userMapping">select id,name,id_card_num,age from t_user </select>
</mapper>

查询结果

{"XXX...":{id:1,name:"keffett",idCardNum:"XXX...",age:18},"YYY...":{id:2,name:"jiug",idCardNum:"YYY...",age:19}
}

注意
Mapper xml中如果想用resultType代替resultMap@MapKey(“value”)中value需要在SQL中别名为驼峰命名。

mybatis查询结果封装成map类型相关推荐

  1. MyBatis查询结果resultType返回值类型详细介绍

    一.返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值String getEmpNameById(I ...

  2. hibernate将本地SQL查询结果封装成对象

    hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...

  3. java使用集合存储过程_详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...

  4. mybatis 将sql拼接成String类型的变量当做参数传入执行

    mybatis 将sql拼接成String类型的变量当做参数传入执行 mybatis 将sql拼接成String类型的变量当做参数传入执行 遇坑 之前传参数都是使用#{}的方式去传递,这样SQL就能拼 ...

  5. http get请求参数封装成map

    http get请求参数工具类: public class UrlSpiltUtils {/*** 小程序拼接* @param url* @return*/public static String u ...

  6. Mybatis多参数封装到map中,多条件查询

    1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.willia ...

  7. Java连接mysql并且用map_jdbc-mysql基础 把查询到的结果集封装成Map的形式

    礼悟: 好好学习多思考,尊师重道存感恩.叶见寻根三二一,江河湖海同一体. 虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. 数据.数据,命根就在数据.云计算.AI等技术,都是以数据为基 ...

  8. MyBatis查询结果resultType返回值类型

    基本数据类型: xml配置文件: <select id="getUnitNum" resultType="int"> dao层: int getUn ...

  9. MyBatis查询,返回值Map或ListMap

    https://www.cnblogs.com/xiaoliu66007/p/7908181.html 一.返回值Map 1.mapper.xml [html] view plain copy < ...

最新文章

  1. Animation Override Controller动画重载器
  2. Linux 基础学习
  3. Yii2掉index.php?r=
  4. leetcode1017
  5. windows版influxDB安装与配置
  6. access期刊可以重投几次_又被拒稿了?老司机带你一投即中
  7. java中thread实例_Java多线程2:Thread中的实例方法
  8. java实现WGS84转其他地图坐标
  9. 173. 二叉搜索树迭代器(二叉搜索树+栈)
  10. php 系统环境变量引用,PHP 系统变量 环境变量
  11. android 获取相机拍照保存到sqlite_OPPO助力谷歌CameraX计划,造福第三方相机应用用户...
  12. 网络互连与互联网知识点笔记(五)---路由器技术
  13. 网络渗透技术如何自学,自学黑客要多久
  14. 切比雪夫多项式拟合 matlab,怎么用Matlab来实现切比雪夫多项式拟合?
  15. FASTDB中文手册
  16. 命名空间“xxx”中不存在类型或命名空间名“xxx”(是否缺少程序集引用)
  17. 华为鸿蒙跑了个“hello world”!跑通后,我特么开始怀疑人生....
  18. 苹果 Apple Beta 版软件计划 相关软件地址
  19. 光纤中的多种光学模式芯径_光纤的结构是什么?种类有哪些?该怎么选择?
  20. 【Task02】Numpy组队学习—随机抽样

热门文章

  1. Terraform基本介绍(1)
  2. [附源码]JAVA+ssm基于JAVA语言的国货美妆店管理系统(程序+Lw)
  3. 【零壹视界】你为什么不那么需要下载了?
  4. 关于MS OFFICE安装失败、无法卸载干净的完美解决方案
  5. 别给“花式”这两个字吓倒了
  6. css 实现边框四个角效果
  7. lassasymphonie钢琴谱_英文群星6 - Mozart L'opera RockMP3下载
  8. python画出一个梅花_如何用Python画一棵漂亮的树
  9. 在web前端的路上,新手就业形势严峻,如何绝地求生?
  10. Revit二次开发01——环境搭建(附Revit 2018 + Visual Studio 2017下载地址)