mybatis-210720-03—映射文件_select_resultMap_分步查询传递多列值&fetchType.md
<!--
场景2
查询部门的时候,把对应所有的员工信息查询出来
-->
DepartmentMapper.java
package com. bgy. mybatis. dao;
import com. bgy. mybatis. bean. Department;
public interface DepartmentMapper {
public Department getDeptByIdStep ( Integer id) ;
}
DepartmentMapper.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.bgy.mybatis.dao.DepartmentMapper" >
< resultMap type = " com.bgy.mybatis.bean.Department" id = " MyDeptStep" >
< id column = " id" property = " id" />
< result column = " dept_name" property = " departmentName" />
< collection property = " emps"
select = " com.bgy.mybatis.dao.EmployeeMapper.getEmpsByDeptId"
column = " {deptId=id}"
fetchType = " lazy" >
</ collection>
</ resultMap>
< select id = " getDeptByIdStep" resultMap = " MyDeptStep" >
select
id,dept_name
from
tbl_dept
where
id=#{id}
</ select>
</ mapper>
EmployeeMapper.java
package com. bgy. mybatis. dao;
import java. util. List;
import com. bgy. mybatis. bean. Employee;
public interface EmployeeMapper {
public List< Employee> getEmpsByDeptId ( Integer deptId) ;
}
EmployeeMapper.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.bgy.mybatis.dao.EmployeeMapper" >
< select id = " getEmpsByDeptId" resultType = " com.bgy.mybatis.bean.Employee" >
select
*
from
tbl_employee
where
d_id=#{deptId}
</ select>
</ mapper>
MybatisTest.java
package com. bgy. mybatis. test;
import java. io. IOException;
import java. io. InputStream;
import org. apache. ibatis. io. Resources;
import org. apache. ibatis. session. SqlSession;
import org. apache. ibatis. session. SqlSessionFactory;
import org. apache. ibatis. session. SqlSessionFactoryBuilder;
import org. junit. jupiter. api. Test;
import com. bgy. mybatis. bean. Department;
import com. bgy. mybatis. dao. DepartmentMapper;
class MybatisTest {
public SqlSessionFactory getSqlSessionFactory ( ) throws IOException {
String resource = "mybatis-config.xml" ;
InputStream inputStream = Resources. getResourceAsStream ( resource) ;
return new SqlSessionFactoryBuilder ( ) . build ( inputStream) ;
}
@Test
public void test04 ( ) throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory ( ) ;
SqlSession sqlSession = sqlSessionFactory. openSession ( ) ;
try {
DepartmentMapper mapper = sqlSession. getMapper ( DepartmentMapper. class ) ;
Department department = mapper. getDeptByIdStep ( 1 ) ;
System. out. println ( department. getDepartmentName ( ) ) ;
} finally {
sqlSession. close ( ) ;
}
}
}