多对一的处理 | 学习笔记

简介: 快速学习多对一的处理。

开发者学堂课程【MyBatis持久层框架入门:多对一的处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/21/detail/447


多对一的处理


1. 数据库表的设计

学生对应老师是多对一的关系,一个老师对应多个学生。

图片63.png

建立外键关系

图片64.png

Student 表和 teacher表中的详细信息

2.实体类

Teacher.java

图片65.png

Student.java

图片66.png

图片67.png

图片68.png

编写映射文件

编写学生将老师查询出来

所以编写 student.mapper.xml  多对一共有两种处理方式以下为第一种:

A:结果嵌套处理

图片69.png

图片70.png

首先把所有数据通过数据库查询出来,将所查询到的数据对应到实体类中。

其中 association 表示为关联对象;property 意思为:关联对象在 Student 实体类中的属性

以下是完整输出结果相互关联的表。

图片71.png

图片72.png

最终测试文件:

图片73.png

B:查询嵌套处理

第二种方式更为简单一些,体现在数据库查询上,其他的不需要关注,只需要更加关注关联对象 association,给其配备 property、column、select  以及 JavaType,select 的是 teacher.mapper.xml 中的 getTeacher。

图片74.png

将核心应射文件关联到 teacher,这是一种最常用的写法,因为每一个实体类都要有对应的映射文件

图片75.png

在查找时可单独写 teacher.mapper.xml,也可以将所选内容写到student.mapper.xml 中,只是当前文件中更方便快捷,若出现形式过于多复杂等情况建议写成多个文件形式。

图片76.png

图片77.png

总结:首先在数据库中查询到学生信息,将未被处理到的 id 去找到一个结果起到映射作用,也就是 resultMap,他的类型为 student。idname 处理后多了一个 tid;其中的 tid 时关于 property 中的 teacher 这个类型。

在根据 tid 到另外一张表中去查询,调用这张表中的 select 去查询老师的信息。

 

相关文章
|
SQL XML 数据格式
mybatis-关联关系&一对多关联&多对一关联&多对多
mybatis-关联关系&一对多关联&多对一关联&多对多
|
Java 数据库连接 数据库
多对一的处理 | 学习笔记
快速学习多对一的处理
多对一的处理 | 学习笔记
|
XML Java 数据库连接
一对多的处理| 学习笔记
快速学习一对多的处理。
101 0
|
开发者
多对多关系 | 学习笔记
快速学习多对多关系。
149 0
多对多关系 | 学习笔记
|
XML Java 数据库连接
Mybatis【一对多、多对一、多对多】知识要点
Mybatis【多表连接】 我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用..等标签将其的映射属性关联起来的...那么在我们Mybatis中又怎么做呢??? 先来回顾一下我们SQL99的语法: 一)内连接(等值连接):查询客户姓名,订单编号,订单价格 ...
1155 0
|
存储 Java 数据库连接