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