Mybatis中多表查询

表之间的关系有一对多、多对一、一对一、多对多。

举例:
一个用户可以下多个订单,多个订单属于同一用户,用户和订单就是一对多,订单和用户就是多对一。
一个人只能有一个身份证号,人和身份证号就是一对一。
一个学生可以被多个老师教过,一个老师可以教多个学生,老师和学生之间就是多对多。
特例:
如果拿出一个订单,它都只能属于一个用户,所以mybatis就把多对一看成了一对一。

多对一(等同于一对一)和一对多

示例:用户和账户,一个用户可以有多个账户,一个账户只能属于一个用户。
步骤:

  1. 建立两张表:用户表、账户表,让两张表之间具备一对多的关系:需要使用外键在账户表中添加。
  2. 建立两个实体类:用户实体类和账户实体类,让用户和账户的实体类能体现出一对多的关系。
  3. 建立两个配置文件:用户的配置文件、账户的配置文件。
  4. 实现配置:当我们查询用户时,可以同时得到用户下所包含的账户信息,当我们查询账户时,可以同时得到账户的所属用户信息。

实现:
Mybatis中通过实现子类方式进行一对一查询(不常用)
Mybatis中通过建立实体类关系进行一对一查询(常用)
Mybatis中一对多查询的实现

多对多

示例:用户和角色,一个用户可以有多个角色,一个角色可以赋予多个用户。
步骤:

  1. 建立两张表:用户表、角色表,让用户表和角色表具有多对多的关系,需要使用中间表,中间表中包含各自的主键,在中间表是外键
  2. 建立两个实体:用户实体类和角色实体类,让用户和角色的实体类体现出来多对多的关系,各自包含对方一个集合引用
  3. 建立两个配置文件:用户的配置文件,角色的配置文件。
  4. 实现配置:当我们查询用户时,可以同时得到用户所包含的角色信息,当我们查询角色时,可以同时得到角色所赋予的用户信息。

实现:
Mybatis中从角色到用户的多对多操作
Mybatis中用户到角色的多对多操作

发布了56 篇原创文章 · 获赞 0 · 访问量 551

猜你喜欢

转载自blog.csdn.net/qq_41242680/article/details/105356725