左侧菜单列表展现——2.1.2【多表操作(一对一、一对多)关联查询】

MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率。但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件。
MyBatisX插件一款基于 IDEA 的快速开发插件,为效率而生。
基于SpringBoot使用MyBatisX插件
​​​​​​​
MybatisX快速开发插件 | MyBatis-Plus

一、总的规则

二、不同情况

1、不同表

                                                            员工表Emp                                                                 

部门表Dept

一对一封装(不同表):一个员工对应一个部门/员工表Emp封装部门表Dept

一对多封装(不同表):一个部门对应多个员工/部门表Dept封装员工表Emp

2、同一张表(自关联)

一对多封装(同表):各级菜单列表并不是分成多个表,而是在一张表里写着

左侧菜单列表展现时用——一般最多二级菜单列表展现

Mybatis执行一对一、一对多的关联查询都有哪些实现方式,以及它们之间的区别?--面试  面试问:多表如何映射的

答:能,Mybatis不仅可以执行一对一、一对多的关联查询,还可以执行多对一,多对多的关联查询,多对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;多对多查询,其实就是一对多查询,只需要把selectOne()修改为selectList()即可。

一对多的实现/操作方式?
关联对象查询,有两种实现方式,一种是单独发送一个sql去查询关联对象,赋给主对象,然后返回主对象。另一种是使用嵌套查询,嵌套查询的含义为使用join查询,一部分列是A对象的属性值,另外一部分列是关联对象B的属性值,好处是只发一个sql查询,就可以把主对象和其关联对象查出来。

一对一的实现:在映射文件中,主表通过association标签封装次表,使用javaType属性指定次表对象

一对多的实现:在映射文件中,主表通过collection   标签封装次表,使用ofType属性指定次表对象

MyBatis 实现一对多有几种方式,怎么操作的? 
有联合查询和嵌套查询。联合查询是几个表联合查询,只查询一次,通过在 
resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先查 
一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据,也是通过 
配置 collection,但另外一个表的查询通过 select 节点配置。

MyBatis 实现一对一有几种方式?具体怎么操作的? 
有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在 
resultMap 里面配置 association 节点配置一对一的类就可以完成; 
嵌套查询是先查一个表,根据这个表里面的结果的 外键 id,去再另外一个表里面 
查询数据,也是通过 association 配置,但另外一个表的查询通过 select 属性配置。 

表与表之间有哪些关联关系?

表与表之间有哪些关联关系?
答案:
一对一(实际上是特殊的一对多)
一对多
多对多,需要中间关系表


版权声明:本文为fhefhffg原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。