后端框架的学习----mybatis框架(9、多对一处理和一对多处理)

简介: 这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。

9、多对一处理和一对多处理

多对一

 <!--按照结果集嵌套查询-->
    <select id="getAllStudent1" resultMap="StudentTeacher2">
        select s.id sid,s.name sname,t.name tname
        from student s ,teacher  t
        where s.tid=t.id;
    </select>

    <resultMap id="StudentTeacher2" type="Student">
        <result property="id" column="sid"></result>
        <result property="name" column="sname"></result>
        <association property="teacher" javaType="Teacher">
            <result property="name" column="tname"></result>
        </association>
    </resultMap>

一对多


    <select id="getTeacher" resultMap="TeacherStudent">
        select s.id sid,s.name sname,t.name tname
        from student as s ,teacher as t
        where s.tid=t.id and t.id=#{tid};
    </select>

    <resultMap id="TeacherStudent" type="Teacher">
        <result property="id" column="tid"></result>
        <result property="name" column="tname"></result>
        <collection property="students" ofType="Student">
            <result property="id" column="sid"/>
            <result property="name" column="sname"/>
            <result property="tid" column="tid"/>
        </collection>
    </resultMap>

小结

1、关联-asscciation【多对一】
2、集合-collection 【一对多】
3、JavaType & offType

  • javaType:用来指定实体类中属性的类型
  • ofType:用来指定映射到List或者集合中的pojo类型,泛型中的约束类型
相关文章
|
存储 缓存 关系型数据库
【MySQL】myisam_sort_buffer_size=32M,是干什么的?底层原理是什么?
【MySQL】myisam_sort_buffer_size=32M,是干什么的?底层原理是什么?
696 0
|
6月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
6月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
|
存储 缓存 负载均衡
Zookeeper用作注册中心的原理
注册中心主要有三种角色: • 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 • 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。 • 服务注册中心(Registry):用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client 感知后会刷新本地 内存中缓存的服务节点列表。
966 0
Zookeeper用作注册中心的原理
|
存储 数据挖掘 BI
秒懂边缘云 | CDN基础入门:CDN运营报表的使用
运营报表是通过对日志采集并提取数据,可以查询加速域名在各个不同时间段的离线分析数据;通过分析数据,便于您了解加速域名的运行状况,帮助您进行业务状态分析。
707 1
|
5月前
|
NoSQL Linux Shell
Redis 的安装与部署(图文)
Redis 的安装与部署(图文)
|
10月前
|
弹性计算 运维 负载均衡
【Terraform实现云服务基础设施既代码(IaC)案例实战-2】:通过Terraform实施基础IaC
前言树苗科技公司业务上云2年有余,随着技术的不断发展。运维团队支持业务变更配置、开资源、删资源等过程加班到深夜一两点已是家常便饭。为了进一步提升工作效率,运维总监张三决定对当前业务交付路径进行统一梳理,借助IaC的理念和Terraform自动化工具逐步实施运维生产自动化,改善组内成员频繁加班的现状。...
344 0
【Terraform实现云服务基础设施既代码(IaC)案例实战-2】:通过Terraform实施基础IaC
|
SQL Java 数据库连接
Mybatis-Plus常用的查询方法--看这一篇就够了!!!
前言: Mybatis-Plus作为Mybatis的增强,自己封装了很多简单还用的方法,来解脱自己写sql! 对于项目的搭建小编就不在说了,可以参考: SpringBoot+Mybatis-Plus的入门搭建与配置测试 这样就可以跟小编站在同一起跑线了,咱们直接开始介绍方法的使用哦!!
1350 2
|
双11 数据库 黑灰产治理
高并发秒杀系统如何实现正确的扣减库存?
在【精通高并发系列】的《实践出真知:全网最强秒杀系统架构解密!!》一文中,冰河详细的阐述了高并发秒杀系统的架构设计,也简单提到了如何扣减商品的库存。
2577 0
高并发秒杀系统如何实现正确的扣减库存?
|
存储 移动开发 边缘计算
秒懂边缘云 | CDN基础入门:CDN日志下载与分析
CDN提供了离线日志、实时日志两种日志的对接方式,通过本文您可以了解CDN提供的日志相关的功能和产品。
1793 3