MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息

我们知道,MyBatis的****可以帮我们自动的生成Pojo和Mapper,大大的减少了我们开发的时间
基本的操作方法为:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息那当我们要这样显示员工数据的时候
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息那么问题来了,
这时候MyBatis****自动生成的代码是不够的,因为这样的数据显示不仅仅是一张表,而是两张表,员工表emp,部门表dept,并且显示的信息中,还有上级领导的信息,也就是自关联查询
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息那这时候怎么办呢?使用关联查询

那MyBatis****自动生成的映射文件和接口只能对单表操作,怎么多表联查呢?

没有条件,创造条件

下面是思路:

1、我们由于搞分页查询,所以肯定得接收两个参数,一个是page(表示的是当前页是第几页,这里默认值我设置为1),rows(表示的是一页显示多少条数据,这里默认值我设置是3)
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息2、业务层
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息这里业务层使用到了分页的插件PageHelper,很方便,可以封装我们查询的信息

3、下面是到了Mapper层了

Mapper层是MyBatis****自动生成的,所以没有关联查询,这里我们需要修改一下,没有条件,我们就创造条件

首先是Pojo实体类Employee的修改,
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息可以看出生成的实体类里没有部门这个信息Dept,也没有上级员工Employee这个信息,虽然我们可以直接写在里面,但是不建议直接写在里面,这样有可能会影响到其他的操作,所以我们可以继承员工类Employee,我们去我们定义的这个类中去书写:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息好了,有了实体类可以接收从数据库查询来的数据,这时候我们得去接口中添加一个方法:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息一个是查询所有的员工信息,一个是通过上级领导的编号,查询上级领导的信息
接着修改EmployeeMapper.xml配置文件

MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息这里就是关键部分了,需要说明:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息这里要注意另外一个关联查询:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息虽然这里没有使用到,但是还得提一下colletion和association的区别

colletion:

比如说:老师的信息中可能含有学生的信息,学生不可能只有一个,而是一个List

association:

比如说:上面的一个员工,一个部门,一个员工只有一个上级领导

最后把查询的数据返回,从分页助手的PageInfo中取出数据:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息存入作用域,响应到JSP页面,JSP页面中接收数据,使用JSTL和EL表达式处理,就可以显示了:
MyBatis学习之——****关联查询显示员工表里面的部门信息、上级领导信息