MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)

前一篇MyBatis逆向工程查询员工表Emp信息,员工表里面包含部门信息,以及上级领导的信息
里面都是一个员工有一个部门,有一个上级领导(总裁除外),我们关联查询使用的是

那么现在问题来了,如果要这样显示呢?
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第1张图片也就是说,查询班级表t_clazz的信息,同时查询该门课程下面的学生信息(学生信息在t_student表中),学生表里有班级的编号cid。
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第2张图片MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第3张图片下面是IDEA关联数据库,IDEA真的是神器,强烈安利使用!效率很高。
班级表(t_clazz):
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第4张图片学生表t_student:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第5张图片MyBatis-逆向工程自动生成的pojo、mapper它是只能对单表做操作的,对于关联查询以及其他的查询,如果我们需要的话,还是得手写,也就是没有条件,创造条件。

步骤:

1、因为要查询班级信息,同时还要知道这个班级里面有多少个学生信息,我们同样也需要在Clazz的实体类中添加一个学生集合的成员变量
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第6张图片
我们在之前那篇文章里面说过,尽量不要修改自动生成的实体类Pojo,因为可能会影响其他的操作,那我们可以使用继承,让Clazz2继承Clazz,这样我们就有了集合成员变量,也不会修改之前的实体类。
这是MyBatis逆向工程生成的实体类

MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第7张图片我们继承它:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第8张图片下面在MyBatis-逆向工程自动生成映射文件的接口方法中,添加查询的方法
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第9张图片在映射文件中书写我们的查询语句:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第10张图片这里需要注意的两点:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第11张图片在这里插入图片描述MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第12张图片因为MyBatis-逆向工程自动生成的只能通过主键查询,或者传递参数的selectByExample查询,如果这样写:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第13张图片给我报错了:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第14张图片我们需要自定义方法,也就是这个方法
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第15张图片MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第16张图片
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第17张图片这样我们的数据就能查询到了,然后通过作用域存入,这样就可以在前台页面通过JSTL和EL进行展示:
MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List)_第18张图片总结:MyBatis一定要熟练使用,还有逆向工程也是一定要熟练使用,IDEA也要好好利用好,真的是个神器啊。

你可能感兴趣的:(MyBatis-逆向工程学习之——关联查询班级信息(一个班级有多个学生的信息集合List))