resultMap3_关联查询_分步查询

1、项目结构

2、DepartmentMapper.java

package com.atguigu.mybatis.dao;

import com.atguigu.mybatis.bean.Department;

public interface DepartmentMapper {
    
    public Department getDeptById(Integer id);

}

3、DepartmentMapper.xml添加代码

<!-- public Department getDeptById(Integer id); -->
    <select id="getDeptById" resultType="com.atguigu.mybatis.bean.Department">
        select id,dept_name departmentName from tbl_dept where id=#{id}
    </select>

4、EmployeeMapperPlus.xml添加代码

<!-- 使用association分步查询:
            1、先按照员工id查询员工信息
            2、根据查询员工信息的d_id值去部门部门表查出部门信息
            3、部门设置到员工中
     -->
    <resultMap type="com.atguigu.mybatis.bean.Employee" id="MyEmpStep">
        <id column="id" property="id"/>
        <result column="last_name" property="lastName"/>
        <result column="email" property="email"/>
        <result column="gender" property="gender"/>
        <!-- association定义关联对象的封装规则
            select:表明当前属性是调用select指定的方法查出的结果 
            column:指定将那一列的值的传给这个方法
            流程:使用select指定的方法(传入column指定的这列参数值)查出对象,并封装给property指定的属性
            -->
        <association property="dept" 
                select="com.atguigu.mybatis.dao.DepartmentMapper.getDeptById"
                        column="d_id">            
        </association>
    </resultMap>
    <!-- public Employee getEmpByIdStep(Integer id) ; -->
    <select id="getEmpByIdStep" resultMap="MyEmpStep">
        select * from tbl_employee where id=#{id}
    </select>

注:1、使用association分步查询步骤:

    ①、先按照员工id查询员工信息

    ②、根据查询员工信息的d_id值去部门部门表查出部门信息

    ③、部门设置到员工中

   2、association定义关联对象的封装规则

     select:表明当前属性是调用select指定的方法查出的结果 

     column:指定将那一列的值的传给这个方法

     流程:使用select指定的方法(传入column指定的这列参数值)查出对象,并封装给property指定的属性

 

转载于:https://www.cnblogs.com/2016024291-/p/8248782.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值