Mybatis高级查询(一):resultMap与resultType
Mybatis高级查询(一)
在开始高级查询之前我们先来认识几个新的标签
resultMap与resultType
resultType:将查询结果按照sql列名pojo属性名一致性映射到pojo中
适用场合:较为简单的映射关系
但是如果pojo中没有包括查询出来的列名,就需要增加列名对应的属性才可以完成映射,如果没有查询结果的特殊要求建议使用resultType.
1)基本类型:resultType=基本类型。
2)List类型:resultType=list中元素的基本类型
3)Map类型:单条记录:resultType=map
多条记录:resultType=Map中的value类型
***resultMap:***它可以将查询到的复杂数据(比如查询到几个表中的数据)映射到一个结果集中;需要单独定义resultMap,实现有点麻烦,如果对结果有特殊的需求,使用resultMap可以将关联查询映射pojo的属性中。
resultMap可以实现延迟加载,resultType不能实现延迟加载
一对一查询的时候使用association标签使主表的pojo中嵌套另一个表的pojo,实现关联映射
一对多查询的时候使用collection标签将关联查询信息映射到一个List集合中
2association与collection
在上一章的介绍中已经简单的了解过了assoction与collection的作用
association:
作用:将关联信息映射到哟个pojo对象中
适用场合:一个订单表中只有一个用户对象属性,可以使用该标签实现查询订单表的时候关联查询出订单的用户信息;
collection:
作用:将关联查询信息映射到一个list集合中。
适用场合:一个订单表对应多个订单详情表;查询一个订单表,可以使用该标签把结果映射到list集合中
这里我们可以通过resultMap的一些标签和字段来进一步的认识他
<!-- column不做任何的限制,可以为任意表的字段,而property必须为type定义的pojo属性-->
<resultMap id="唯一的标识" type="映射的pojo对象">
<id column="表的主键字段或查询语句中的别名字段" property="映射pojo对象的主键属性" />
<result column="表的一个字段(可以为任意表的一个字段)" property="映射到pojo对象的一个属性"/>
<!--一对一查询-->
<association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
<id column="集合中pojo对象对应的表的主键字段" property="集合中pojo对象的主键属性" />
<result column="可以为任意表的字段" property="集合中的pojo对象的属性" />
</association>
<!--一对多查询-->
<collection property="pojo的集合属性" ofType="集合中的pojo对象">
<id column="集合中pojo对象对应的表的主键字段" property="集合中pojo对象的主键属性" />
<result column="可以为任意表的字段" property="集合中的pojo对象的属性" />
</collection>
</resultMap>
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- C语言小笔记(1)
- 这一次搞懂Spring的XML解析原理
- 这一次搞懂Spring自定义标签以及注解解析原理
- 这一次搞懂Spring的Bean实例化原理
- 单片机入门学习十三 STM32单片机学习十 通用定时器
- Spring IOC原理补充(循环依赖、Bean作用域等)
- 这一次搞懂Spring代理创建及AOP链式调用过程
- 这一次搞懂Spring事务注解的解析
- 这一次搞懂Spring事务是如何传播的
- 这一次搞懂SpringMVC原理
- 这一次搞懂Spring Web零xml配置原理以及父子容器关系
- 这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)
- 全网最深分析SpringBoot MVC自动配置失效的原因
- Mybatis源码初探——优雅精良的骨架
- 深入Mybatis源码——配置解析