这里演示的是多对一
多:学生
一:班级
多个学生一个班级,通过查询学生后再查询班级
业务装配模式,实际上就是mapper层做单表查询操作,在service层做手动装配,实现关联查询的结果
思路:
①首先实体之间的关系,学生之于班级是多对一
所以在学生的实体类从传入一个Class对象用于封装班级信息
②然后分别定义学生的查询操作和班级的查询操作
③在service层中创建两个mapper对象,进行业务装配,首先先查询学生的所有信息,学生的所有信息中包含了班级的id,再用查到的学生信息中的班级id去做班级的查询,最后封装进学生对象,最后在测试类中直接调用方法进行查询
这么做的好处是分开查询,结构清晰,但是代码和逻辑量就稍大一些
根据上面的思路我们一层一层的屡
pojo层
定义实体类Clazz
具体操作就是常规的
继承Serializable接口,
无参有参构造方法,
重写hashCode和equals方法,toString方法,
提供公有的set和get方法
定义实体类Student
具体操作就是常规的
继承Serializable接口,
无参有参构造方法,
重写hashCode和equals方法,toString方法,
提供公有的set和get方法
还有插入Class 用于封装查询班级信息
public
Mapper层
studentMapper.interface
public
studentMapper.xml
<mapper
ClazzMapper.interface
public
ClazzMapper.xml
parameterType:因为传入的是参数是int类型所以就是用int mybatis 会自动处理参数类型
<mapper
service层
studentService.interface
public
studentServiceImpl.class
这里是业务装配的重中之重,思路整理
先查询学生的所有信息再利用学生信息中包含的班级id查询到班级信息,之后再封装回学生的集合中
这里是手动进行了组装,所以称之为业务装配
public
测试类
public