Mybatis08-多对一

这篇博客介绍了Mybatis中的一对多、多对一、一对一和多对多关系,并以多对一关系为例进行详细解释,包括在多的一方添加外键、ResultMap的使用以及关联的嵌套Select查询。通过示例代码展示了UserMapper和RoleMapper的配置,以及对应的POJO类和测试类。
摘要由CSDN通过智能技术生成
  • 关系举例

  1. 一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
  2. 多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。
  3. 一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。
  4. 多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。

注:1.一对一的使用方法:

  (1)使用嵌套结果映射来处理重复的联合结果的子集 。

  (2)通过执行另外一个SQL映射语句来返回预期的复杂类型。

2.一对多的实现方法:在多的一方的表里面,添加外键。

3.多对多的实现方法:必须要通过单独的一张表来表示。

  • ResultMap

resultMap是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。resultMap解决了当POJO类中的属性与数据库字段不一致的情况,通过resultMap,两者间形成映射关系,从而省去了sql语句中的 'as' 关键字,起到简化的作用。

<resultMap type="com.shxt.model.User" id="UserBaseResultMap" autoMapping="true">
  	<!-- 映射主键 -->
  	<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值