数据表创建它的实体类和业务类_[MyBatis]-14 多表关联查询 业务装配模式

本文详细介绍了如何使用MyBatis进行多对一的业务装配,通过在Service层手动装配,先查询学生信息,再根据班级ID查询班级详情,最后将结果整合到学生对象中。这种方式虽然代码量稍大,但能保持查询结构清晰。涉及到的实体类包括Student和Clazz,以及对应的Mapper接口和XML配置文件。
摘要由CSDN通过智能技术生成

e056f88ffa89fafe3014ec5cb246b29d.png

这里演示的是多对一

多:学生

一:班级

多个学生一个班级,通过查询学生后再查询班级

业务装配模式,实际上就是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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值