mybatis使用association分步查询关联属性查询
1、我们的程序是要查询员工信息的时候查询出相应的部门信息。

2、在xml中定义员工分步查询的sql实现。先按照员工id查询员工信息。
根据查询员工信息中的部门id去部门表查出部门信息。然后把部门设置到员工中。
<select id="getEmpById" resultMap="MyEmpByStep" databaseId="mysql">
select * from tbl_emp where emp_id = #{empId}
</select>

3、定义员工信息返回的resultMap。
<resultMap type="com.gwolf.bean.Employee" id="MyEmpByStep">
<id column="emp_id" property="empId"/>
<result column="emp_name" property="empName"/>
<result column="gender" property="gender"/>
<result column="email" property="email"/>
<result column="emp_name" property="empName"/>
<association property="department" select="com.gwolf.dao.DepartmentMapper.getDepartmentById"></association>
</resultMap>

4、定义将员工的那一列的值传值给部门。
<association property="department"
select="com.gwolf.dao.DepartmentMapper.getDepartmentById" column="d_id"></association>

5、编写单元测试类。
@Test
public void test1() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
Map<Integer,Object> employee = employeeMapper.getEmpByIdReturnMap(1);
System.out.println(employee);
}finally {
sqlSession.close();
}
}

6、执行单元测试,查看部门的信息是否能够查询出来。
