mybatis学习五(关联查询)

目录

一、关联查询

二、 一对一

2.1 用户User和身份证Card

2.2 写TUserMapper接口

2.3 配置TUserMapper.xml中

三、一对多

四、鉴别器


一、关联查询

association 一对一关系
collection 一对多关系
discriminator 鉴别器映射
 
关联方式
嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集,简而言之:一个sql查询多表
嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型,简而言之:多个sql查询多表
 

二、 一对一

在Mybatis中,一对一查询是通过在resultMap中配置 associatio标签来实现的,我们先采用嵌套结果的方式展示
 
举例:

2.1 用户User和身份证Card

public class TUser {
    private Integer id;   
    private String userName;
    private String sex;
    private Integer age;
    private Integer cardId;
    private TCard card;  //演示一对一
    private List<TCourse> courses; //演示一对多
    private THealthreport healthreport; //演示鉴别器
    .....
}
public class TCard {
    private Integer id;
    private Integer cardNum;
    private Integer userId;
    .....
}

2.2 写TUserMapper接口

public interface TUserMapper {
	
	List<TUser> selectUserAndCard();
        ...
}
 

2.3 配置TUserMapper.xml中

首先配置User实体类与表的对应关系

   <resultMap id="BaseResultMap" type="com.zc.entity.TUser" >
	    <id column="id" property="id" jdbcType="INTEGER" />
	    <result column="user_name" property="userName" jdbcType="VARCHAR" />
	    <result column="sex" property="sex" jdbcType="VARCHAR" />
	    <result column="age" property="age" jdbcType="INTEGER" />
  </resultMap>

除此之外还要配置User属性card对应的映射,一对一映射的关键

   <!-- 
       extends="BaseResultMap"   通过继承的方式,引入BaseResultMap映射,简化配置
       type="com.zc.entity.TUser"   最终映射的类型
    -->
   <resultMap id="UserAndCard" extends="BaseResultMap" type="com.zc.entity.TUse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值