对于自定义对象一般使用association,对于集合一般使用collection。

对于一般的自定义对象

1、使用子查询:

<resultMap id="BaseResultMapWithItemInfo" type="com.xxx.biz.cases.model.ShCase" extends="BaseResultMap"><association property="applyBillDetailList" column="SERVICE_ID" select="com.xxx.biz.dao.ApplybillDetailMapper.getBriefInfoByServiceId" /><association property="commentSpList" column="SERVICE_ID" select="com.xxx.biz.dao.ServicePartcommentMapper.getCommentSpBriefInfoByServiceId" /><association property="finalUseSpList" column="SERVICE_ID" select="com.xxx.biz.dao.ServicePartcommentMapper.getFinalUseSpBriefInfoByServiceId" /></resultMap>

2、不使用子查询:

<resultMap type="org.apache.ibatis.submitted.associationtest.Car" id="carResult">  <id column="carid" property="id"/>  <result column="cartype" property="type"/>  <association property="engine" resultMap="engineResult"/>  <association property="brakes" resultMap="brakesResult"/>  </resultMap>  <resultMap type="org.apache.ibatis.submitted.associationtest.Engine" id="engineResult">  <result column="enginetype" property="type"/>  <result column="enginecylinders" property="cylinders"/>  </resultMap>  <resultMap type="org.apache.ibatis.submitted.associationtest.Brakes" id="brakesResult">  <result column="brakesType" property="type"/>  </resultMap>

或者类似如下写法:

<resultMap type="org.apache.ibatis.submitted.associationtest.Car" id="carResult">  <id column="carid" property="id"/>  <result column="cartype" property="type"/>  <association property="engine" javaType="org.apache.ibatis.submitted.associationtest.Engine"> <result column="enginetype" property="type"/>  <result column="enginecylinders" property="cylinders"/> </association></resultMap>  

这样会自动在sql查询结果里找到相应的字段来组成相应的对象。

对于list

1、使用子查询:

<resultMap type="com.xxx.base.sys.domain.User" id="userWithRolesMap" extends="BaseResultMap"><collection property="roles" column="id" javaType="list" select="com.xxx.base.sys.dao.RoleMapper.selectUserRoleByUserId">      </collection>
</resultMap>

2、当然,也可以不使用子查询

<collection property="tags" javaType="list" ofType="Tag" >  <id property="id" column="tag_id"/>
</collection>

这会让mybatis自动进行一个类似group by的操作,将所有其他字段重复的数据合并,然后将tag_id作为Tag的id属性拼成一个List<Tag>,这样做效率高一些,但是使用场景也是有限的。

3、如果list中的对象是String

<collection property="tags" javaType="list" ofType="String" >  <result column="tag_id"/>
</collection>

注意,以上2和3中collection标签和1一样,都应该包裹在resultMap标签中,这里为了省事省略了

转载于:https://www.cnblogs.com/flying607/p/4255101.html

关联查询的resultMap写法示例相关推荐

  1. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)

    视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...

  2. MyBatis复习(五):获取多表关联查询结果

    Map保存查询结果 <select id="selectBlogMap" resultType="java.util.Map">select b.* ...

  3. Spring整合Mybatis之关联查询示例

    Spring整合Mybatis之关联查询示例 目录结构: Dept表: employee表: pojo包 Dept.java(实体类): package com.xmm.springboot_lab. ...

  4. 使用resultMap定义查询结果集,实现关联查询

    接下来介绍resultMap定义查询结果集,实现关联查询 1 首先在接口中定义操作的方法 public interface EmployeeMapperPlus { public Employee g ...

  5. 318分组聚合,关联查询(多表连接查询)(连接查询),连接查询oracle写法,集合运算ld

    ----------分组聚合:对表里面的数据进行各个维度/角度的统计 -------------统计:需要用 聚合函数 max(目标字段):求最大值 min(目标字段) :求最小值 avg(目标字段) ...

  6. Mybatis-plus:单表使用关联查询+ResultMap结果映射

    Mybatis-plus:单表使用关联查询+ResultMap结果映射 一:数据表与实体类 二:mapper与mapper.xml 三:service 四:控制器 五:返回结果 一:数据表与实体类 数 ...

  7. MySQL中,关联查询的3种写法…

    原文地址:MySQL中,关联查询的3种写法(USING/ON) 作者:王小安 看看下面三个关联查询的 SQL 语句有何区别? [sql]  view plain copy SELECT * FROM  ...

  8. MyBatis 实现多表查询、resultMap 标签、MyBatis 注解、mybatis运行原理

    内容 Auto Mapping 单表实现(别名方式) 实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 一.MyBatis 实现多表查询 Myba ...

  9. elasticsearch多表关联查询_Mybatis【15】 Mybatis如何实现一对一的情况多表关联查询?...

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-11-one2one,需要自取,需要配置maven ...

最新文章

  1. commander.js
  2. OSPF全国网络互联实施方案
  3. 25分钟训练机器人学会6个动作,伯克利开发高效机器人操纵框架
  4. mysql xtrabackup备份工具使用
  5. Horizon View 6-客户端连接虚拟桌面⑹
  6. jQuery UI resizble、draggable的div包含iframe导致缩放和拖拽的不平滑解决方法
  7. 关于java结构中描述正确的是_下列关于Java中类的构造方法的描述,正确的是()...
  8. python 主函数 输入
  9. java反射用法示例_Java包| 类型,用法,示例
  10. RTX5 | 线程标志组01 - 线程同步
  11. werkzeug create_environ
  12. 2013.11.20 流水
  13. Netflix Media Database - 架构设计和实现
  14. (源码)群体智能优化算法之引力搜索算法(Gravitational Search Algorithm,GSA)
  15. 容器技术Docker K8s 31 容器服务ACK基础与进阶-弹性伸缩
  16. 小岚rabbit_radish(兔仔-萝卜)
  17. pythoon_interview_redit
  18. 使用OpenCV训练好的级联分类器识别人脸
  19. 祝贺|蚂蚁金服技术人许寄入选2018 MIT TR 35全球榜单
  20. 06-图6. 公路村村通(30)

热门文章

  1. 【编译原理】关于克林闭包与正闭包的讨论
  2. java并发 设计模式,Java并发——设计模式
  3. mysql拷贝恢复.frm_通过.frm .ibd文件恢复MySQL数据
  4. linux下软件多语言开发,Qt,多语言软件,开发流程【总结】
  5. 七日存留查询(MYSQL)
  6. 网站推广期间如何做好用户体验中的交互体验设计?
  7. 企业网络推广——企业网络有推广专员如何做好基本的网站优化布局
  8. 如何规划网站设计方案让用户访问更加舒适?
  9. 移动端、PC端网站优化需齐头并进
  10. phantomjs 抓取html,javascript – 如何使用PhantomJS获取网站的HTML源代码