一、前言

@MapKey 是MyBatis框架的注解,作用是将List结果集转换成key-value形式的Map结果集,方便快速从结果集中查询指定结果。

1.1、用法

1.1.1、dao层

@MapKey("id")
Map getStudents();

1.1.2、xml层

<!--获取学生基本信息-->
<select id="getStudents" resultType="map">SELECT id, idCard, name FROM students
</select>

1.2、效果

使用前

使用后

二、注意事项

2.1、注意key的类型

值得注意的是,通过@MapKey注解返回的Map,其key的类型和指定的字段类型是一致的。

例如:指定id作为Map的key,id为int类型,那么该Map的key也为integer类型,如果你通过String类型的key去获取value,则获取不到。

2.2 、解决方案

2.2.1、保持原样

如果不需要对外使用的话,可以保持原样,只需要在注意一下key的类型即可。

2.2.2、统一使用String做为Key

直接通过mysql函数,修改返回的数据类型即可。

<!--获取学生基本信息-->
<select id="getStudents" resultType="map">SELECT Cast(id as char) AS id, idCard, name FROM students
</select>

三、参考文章

@MapKey的使用_make_888的博客-CSDN博客_@mapkey

@MapKey用法说明相关推荐

  1. MyBatis中@MapKey使用详解

    MyBatis中@MapKey使用详解 我们在上一篇文章中讲到在Select返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对 ...

  2. boost中unordered_map的用法

    学习数据结构的时候 偶然得知有个unordered_map,以前没有用过,查了查相关内容,据说效率比map高出很多,而且耗资源也少,研究一下 至于具体效率咋样我就不去验证了,网上太多了 参考:http ...

  3. Dagger 2 基本用法

    1. Dagger2是什么? Dagger2是一个依赖注入(Dependency Injection)框架. 什么又是依赖注入呢? 借别人的话来说,就是"目标类中所依赖的其他类的初始化过程, ...

  4. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  5. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  6. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  7. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  8. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  9. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

最新文章

  1. 零基础编程入门python视频-编程零基础应当如何开始学习 Python?
  2. (二)图像处理技术概述
  3. Android 第三方库RxLifecycle使用
  4. 计算机网络【3】网络层
  5. 真实的程序员是什么样子的!
  6. 计算机控制炉温实验,计算机控制(炉温控制)实验报告-20210412070439.docx-原创力文档...
  7. IDEA项目创建Mapper的xml文件的方法
  8. Ubuntu 16 安装JDK1.8
  9. 如何使用水经注下载地图
  10. 【安全】什么是0day漏洞?
  11. Docker执行命令提示设备没有相对空间,无法创建,overlay2文件夹磁盘占满
  12. 如何维持手机电池寿命_延长iPhone 手机电池寿命的几个方法
  13. 科技云报道:乘风破浪的联通沃云,是一朵安全可控的国产云
  14. 使用 Swift 语言编程的优缺点
  15. java mybatis多层collection嵌套查询
  16. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
  17. SQL Server 数据库之收缩数据库和文件
  18. 华硕的笔记本为什么按Fn+F9禁用触摸板不起作用了?
  19. 鲁大师性能测试要装什么软件吗,鲁大师怎么给电脑跑分?赶快看看你的电脑性能如何吧!...
  20. 自行申请软件著作权多少钱

热门文章

  1. MATLAB 之 优劣解距离法(TOPSIS )
  2. 游戏陪玩App,如雨后春笋般冒出,直接导致整个游戏陪玩源码市场的持续火爆
  3. 警醒篇:如何做人?(转载)
  4. Jstate JVM分析
  5. JavaWeb开发技术学习笔记(十四)——集群
  6. Buffon投针(近似计算π)
  7. 黑客丛林之旅--全攻略学习(详细)
  8. [架构之路-147]-《软考-系统分析师》- 7-企业信息化战略与实施-4-企业资源规划ERP和实施、信息资源管理
  9. bean是什么,bean和javabean
  10. 跳台阶,有多少种跳法