Mybatis关联查询(一对一,一对多)

本文详细介绍了Mybatis中一对一和一对多的关联查询。通过业务拓展类和resultMap两种方式实现一对一查询,并展示了在mapper.xml中的配置。对于一对多关系,通过在实体类中建立列表属性并配合collection和ofType进行配置,成功实现了多表数据的关联查询。测试结果显示,所有关联信息均能正确获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前期准备,有两张表student2,和student2card

Student2表中cardid作为外键,与student2card表中的cradid关联。

一对一关联查询有两种方式:

方式一:使用业务拓展类(适合数据量较小)

<!-- 利用业务扩展类实现一对一  -->
<select id="queryStudentByNoWithOO" parameterType="int" resultType="StudentBusiness">
    select s.*,c.* 
    from student2 s join student2card c 
    on s.cardid=c.cardid 
    where s.stuno=#{stuNo}
</select>

业务拓展类指的是resultType返回值,因为根据学生编号,可以查询出student2表中的一条数据,同时也能查询出student2card表中的一条。这个时候,java类中没有一种类型能够包括两张表的数据,所以就自定义一种类型,通过继承实现一种新类型。

//学生业务扩展类
public class StudentBusiness extends Student{
	private int cardId;
	private String cardInfo;
	
	public int getCardId() {
		ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值