Mybatis_resultMap方法

一. 案例分析

1. 根据id查用户

在这里插入图片描述
resultMap:用于设置返回值的类型和映射关系

2. resultMap

在这里插入图片描述
在这里插入图片描述

二. resultMap

1. 属性

resultMap包含的所有属性如下。

  1. id:必填,并且唯一。在select标签中,resultMap指定的值即为此处id所设置的值。
  2. type:必填,用于配置查询列所映射到的Java对象类型。
  3. extends :选填,可以配置当前的resultMap继承自其他的resultMap,属性值为继承resultMap的id。
  4. autoMapping:选填,可选值为true或false,用于配置是否启用非映射字段(没有在resultMap中配置的字段〉的自动映射功能,该配置可以覆盖全局的autoMappingBehavior配置。

2. 标签

resultMap包含的所有标签如下。

  1. constructor:配置使用构造方法注入结果,包含以下两个子标签。
    - idArg: id参数,标记结果作为id(唯一值),可以帮助提高整体性能。
    - arg:注入到构造方法的一个普通结果。
  2. id:一个id结果,标记结果作为id(唯一值),可以帮助提高整体性能。
  3. result:注入到Java对象属性的普通结果。
  4. association:一个复杂的类型关联,许多结果将包成这种类型。
  5. collection:复杂类型的集合。
  6. discriminator:根据结果值来决定使用哪个结果映射。
  7. case:基于某些值的结果映射。

2.1 constructor 标签

在这里插入图片描述

2.2 id、result 标签 常用

在这里插入图片描述
案例
在这里插入图片描述

三. resultMap的高级映射

1. 初始化

  1. 用户和角色
    在这里插入图片描述
    在这里插入图片描述

2. 一对一映射

应用场景:

假设在某权限系统中,
一个用户只能拥有一个角色,

在这里插入图片描述

1.1 准备工作

1.1 实体对象

在这里插入图片描述

1.2 测试方法

在这里插入图片描述

1.2 四种映射

1. 自动映射

在这里插入图片描述
在这里插入图片描述
特点: 一个一个写出来

2. 使用resultMap配置一对一映射

在这里插入图片描述
在这里插入图片描述
优化userRoleMap
在这里插入图片描述

3. resultMap的association标签配置一对一映射

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. association标签的嵌套查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 一对多映射

1. 准备工作

在这里插入图片描述

在这里插入图片描述

2. collection集合的嵌套结果映射

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1 多层嵌套

一对多对多 = 一对多 + 一对多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. collection集合的嵌套查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
resultMap 在 MyBatis 中用于自定义查询结果的映射方式。通过 resultMap,我们可以定义字段名和属性名的对应关系,并且可以选择性地指定要显示的列,使结果映射更加灵活和方便。使用 resultMap 可以实现字段名与属性名不一致的映射,以及关联查询时的结果处理。 需要注意的是,resultType 和 resultMap 在 select 元素中是互斥的,即不能同时存在,只能选择其中一个来定义返回类型。resultType 直接表示返回的类型,而 resultMap 则是对外部 resultMap 的引用。 使用 resultMap 的场景多种多样,可以根据实际需求灵活选择。推荐使用 resultMap,因为它更加灵活,并且在自定义结果映射方面功能更强大。 总结来说,resultMap 在 MyBatis 中用于自定义查询结果的映射方式,可以实现字段名与属性名的对应关系,并且可以选择性地指定要显示的列,使结果映射更加灵活和方便。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MyBatis中resultMap详解](https://blog.csdn.net/weixin_49707895/article/details/109564527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与海boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值