Mybatis 多对一 、 一对多关系映射

195 阅读1分钟

多对一常见得实现方式:

第一种方式:多对一得级联属性

假设有学生表、班级表两张表:

1、在pojo 学生表得实体类中添加班级表得对象。

2、Student selectById(integer id);

3、关系映射如下

image-20240204163730676.png

第二种方式:assation:

Mapper 接口保持不变,SQL文件修改即可。

image.png

一对多映射常见得包含以下二方式:

一对多常见得实现方式:

  • 第一种实现方式:collection

  • 第二种实现方式:分布查询

  • 思路分析:

一对多:一在前.一是主表、多是副表。 主表:t_clazz 班级表 副表:t_stu 学生表

第一种方式:collection

第一步: java实体类编写方式:

public class clazz{

//班级id
private integer id;
//班级名称
private integer Name;

//学生集合
List<Student> stu;
}

第二步: clazz selectByCollection(integer id);

第三步: 编写SQL 映射文件:

image.png

二种方式: 分步查询:

1、先查询班级信息 2、编写一个Mapper接口封装学生信息为List query; 3、查询班班级信息

总结:

分步查询得优势就是代码复用

常用一对多得为第一种方式: 多对一得是级联属性

image.png