MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)



MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

转载 2018年01月07日 21:52:30

我们现在数据库里有两个表:Country,Minister,我们现在通过查询Country的cid来得到Minister里的的信息。

两个表如图:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

Country

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

Minister

一、多表连接查询:

创建接口: Country selectCountryById(int cid);

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

country类

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

minister类

映射文件:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

映射文件

测试类:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

测试类

查询结果:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)


对映射文件里的resultMap的详解:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

详解resultMap

  • <id>:主键字段

  • <result>:普通字段

  • type:整体封装出的类型

  • column:字段名(表里定义好的)

  • property:关联属性(查询出来的结果封装成Country里的哪个属性)

  • <collection>:集合封装

  • ofType:指定属性类型(关联属性是什么类型)

集合封装说明:字段mname,mid都不是Country里的,而是Minister里的,但是我们在country类里定义了Set<Minister> ministers;集合,这里我们将两个属性封装到ministers集合里,也就封装到了Minister的对象里。


二、多表单独查询:

除了上面的查询方式外我们还可以这样查询——多表单独查询。

映射文件:

MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)

这种方式里的Minister属性mid、mname是通过查询得到的,而非定义包装的。

将查询到的mid、mname再传给Country类里的ministers集合。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值