Day21——MyBatis自定义映射 association 分步查询

一. 例子

DepartmentMapperResultMap.java

package com.atguigu.mybatis.dao;

import com.atguigu.mybatis.beans.Department;

public interface DepartmentMapperResultMap {

	
	public Department selectDepartmentById(Integer id);
}

DepartmentMapperResultMap.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.atguigu.mybatis.dao.DepartmentMapperResultMap">
	
	<!-- public Department selectDepartmentById(Integer id); -->
	<select id="selectDepartmentById" resultType="com.atguigu.mybatis.beans.Department">
	    select id, dept_name departmentName from tbl_dept where id = #{id}
	</select>
	
	
</mapper>

EmployeeMapperResultMap.xml

<!-- public Employee selectEmployeeAndDeptStep(Integer id); -->
	<select id="selectEmployeeAndDeptStep" resultMap="myEmpAndDeptStep">
	   select id, last_name, email, gender, d_id from tbl_employee where id = #{id}
	</select>
	<resultMap type="com.atguigu.mybatis.beans.Employee" id="myEmpAndDeptStep">
	     <id column="id" property="id"/>
	     <result column="last_name" property="lastName"/>
	     <result column="email" property="email"/>
	     <result column="gender" property="gender"/>
	     
	     <!-- 分步查询 
	          select: 指定要调用的查询
	          column:传递给调用的查询的参数
	     -->
	     <association property="dept" 
	        select="com.atguigu.mybatis.dao.DepartmentMapperResultMap.selectDepartmentById"
	        column="d_id" >
	     </association>
	     
	     
	</resultMap>

TestMyBatisResultMap.java

@Test
	public void testResultMapAssociationStep() throws Exception {
		SqlSessionFactory ssf = getSqlSessionFactory();
		SqlSession session = ssf.openSession();
		
		try {
			EmployeeMapperResultMap mapper = session.getMapper(EmployeeMapperResultMap.class);
			Employee employee = mapper.selectEmployeeAndDeptStep(1001);
			System.out.println(employee);
			
			
			session.commit();
		} finally {
			// TODO: handle finally clause
			session.close();
		}
	}

public SqlSessionFactory getSqlSessionFactory() throws Exception {
		String resource = "mybatis-config.xml"; 
		InputStream inputStream = 
				Resources.getResourceAsStream(resource); 
		SqlSessionFactory sqlSessionFactory = 
				new SqlSessionFactoryBuilder().build(inputStream);
		return sqlSessionFactory;
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值