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指定的属性