Mybatis关联查询

在数据库的增删改查操作中,用的最多的就是查询操作了,查询操作又可以分成一对一查询、一对多查询和多对多查询。一个人属于一个部门,查询人的时候要查出他的部门,这是一对一查询;一辆车有四个轱辘,查询车的时候要查出这四个轱辘,这是一对多查询;一个学生选了多门课,一门课也是被多个学生选的,学生与课程之间用一张关联表来联系,这是多对多查询。

本文介绍 Mybatis 是如何处理这几种查询方式的,包括以下三个部分:

  1. Mybatis 一对一查询
  2. Mybatis 一对多查询
  3. Mybatis 多对多查询
  4. discriminator 鉴别器映射

一对一查询

从代码上来看一对一查询就是在查询 User 对象的时候,查询出他的部门 postion。在 Mybatis 中可以使用 association 来表示一对一的映射关系,并且有嵌套结果嵌套查询两种方式。

 
public class TUser implements Serializable{
    ...
    private TPosition position;

嵌套结果

TUser 表有一个 resultMap 名为 BaseResultMap,配置了 TUser 对象与数据库中字段的映射。

 
<resultMap id="BaseResultMap" type="TUser">
		<id column="id" property="id" />
		<result column="user_name" property="userName" />
		<result column="real_name" property="realName" />
		<result column="sex" property="sex" />
		<result column="mobile" property="mobile" />
		<result column="email" property="email" />
		<result column="note" property="note" />
</resultMap>

我们现在要一对一查询 TUser 所在的部门 Postion,就新建一个 resultMap 叫做 userAndPosition1。它 extends 自 BaseResultMap,拥有其所有的变量。我们查询的是 TUser,同时一对一查询出 postion,所以 userAndPosition1 的类型是 TUser。

 
<resultMap id="userAndPosition1" extends="BaseResultMap" type="TUser">
		<association property="position" javaType="TPosition" columnPrefix&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值