广告
返回顶部
首页 > 资讯 > 精选 >mybatis返回map结果及@MapKey使用的场景实例分析
  • 273
分享到

mybatis返回map结果及@MapKey使用的场景实例分析

2023-06-28 23:06:42 273人浏览 八月长安
摘要

本篇内容介绍了“mybatis返回map结果及@MapKey使用的场景实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybatis返

本篇内容介绍了“mybatis返回map结果及@MapKey使用的场景实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

mybatis返回map结果集@MapKey使用场景

select的 resultType属性为map时:

通过MapKey指定map的key值

使用id作为map的ke

@MapKey("id")Map<Long, UserInfo> getUserInfoMap();

Map的value为Map,一条记录对应一个Map

@MapKey("id")Map<Long, Map<String,Object>> getUserValueMap();

使用name作为map的key 

@MapKey("name")Map<name, UserInfo> getUserInfoMap();  ..............返回一条记录...............Map<String, Object> getUserInfoMapById();

mybatis使用@MapKey注解

背景和含义

背景:今天使用MyBatis查询一些记录,数据涉及到两个表里的数据,需要连表查询,但我MyBatis的返回结果不想创建新的DO对象,因此使用@MapKey注解返回一个Map集合

含义:@MapKey注解用于mapper.xml文件中,一般用于查询多条记录中各个字段的结果,存储在Map中。Map结构的示例如下:Map<Long, Map<String, String>>。范型类型可以修改。

  • Map的key:一般存储每条记录的主键,也可以用其他值表示,主要取决于Dao层@MapKey注解后面的字段(如@MapKey("id"));

  • Map的value:也是一个Map,表示查询出这条记录的每个字段的字段名称和字段值。

具体示例

mapper.xml文件

<select id="getInfoById" resultType="java.util.Map">    select    ext.id as id,    info.produce_area as area,    ext.attribute_value as companyName    from product_info info    left join product_ext ext on info.id=ext.id    where info.id=#{id} and ext.attribute_name=#{name}</select>

dao.java

@MapKey("id")Map<Long,Map<String,String>> getInfoById(@Param("id") Long id, @Param("name") String name);

manager.java 

// 查询,返回结果:{1={area:上海,companyName=西西公司}}// 如果是多条记录,返回结果如:{1={area:上海,companyName:西西公司},2={area:南京,compantyName:猴猴公司}}Map<Long, Map<String, String>> map = productDao.getInfoById(id, "公司名称"); if(map==null || map.isEmpty() || !map.containsKey(id)){    return null;}// 获取结果String area = produceInfoMap.get(id).get("area");String companyName = produceInfoMap.get(productTracInfoId).get("companyName");

“mybatis返回map结果及@MapKey使用的场景实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: mybatis返回map结果及@MapKey使用的场景实例分析

本文链接: https://www.lsjlt.com/news/321169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis返回map结果及@MapKey使用的场景实例分析
    本篇内容介绍了“mybatis返回map结果及@MapKey使用的场景实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybatis返...
    99+
    2023-06-28
  • mybatis返回map结果集@MapKey使用的场景分析
    目录mybatis返回map结果集@MapKey使用场景使用id作为map的keMap的value为Map,一条记录对应一个Map使用name作为map的key mybat...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作