非联合查询,一对多

设计一个方法 根据给定的deptno部门编号 查询部门信息+这个部门中的所有员工信息
设计一个方法 查询所有部门的信息 + 每一个部门中的所有员工信息
关键代码部分
dao.DeptDao
package dao;import domain.Dept;import org.apache.ibatis.session.SqlSession;import util.MySqlSessionFactory;import java.util.List;public class DeptDao {private SqlSession sqlSession = MySqlSessionFactory.getSqlSession(true);//设计一个方法 根据给定的deptno部门编号 查询部门信息+这个部门中的所有员工信息public Dept selectOne(Integer deptno){return sqlSession.selectOne("selectOne",deptno);}//设计一个方法 查询所有部门的信息 + 每一个部门中的所有员工信息public List<Dept> selectAll(){return sqlSession.selectList("selectAll");}}
mapper.DeptMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="dao.DeptDao"><select id="selectOne" resultMap="selectEmpList">select deptno,dname,loc from dept where deptno = #{deptno}</select><select id="selectAll" resultMap="selectEmpList">select deptno,dname,loc from dept</select><!--自定义一个赋值的规则--><resultMap id="selectEmpList" type="domain.Dept"><!--id一般用于主键列,result是普通列--><id property="deptno" column="deptno"></id><result property="dname" column="dname"></result><result property="loc" column="loc"></result><collection property="empList" javaType="java.util.List" ofType="domain.Emp" select="selectEmpForDept" column="deptno"></collection></resultMap><select id="selectEmpForDept" resultType="domain.Emp">select * from myemp where deptno = #{deptno}</select></mapper>
联合查询
关键代码部分
dao.DeptDao不变
mapper.DeptMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="dao.DeptDao"><select id="selectOne" resultMap="selectEmpList">select d.deptno,d.dname,d.loc,m.empno,m.ename,m.sal from dept d inner join myemp mon d.deptno = m.deptno where d.deptno = #{deptno}</select><select id="selectAll" resultMap="selectEmpList">select d.deptno,d.dname,d.loc,m.empno,m.ename,m.sal from dept d inner join myemp mon d.deptno = m.deptno</select><!--自定义一个赋值的规则--><resultMap id="selectEmpList" type="domain.Dept"><!--id一般用于主键列,result是普通列--><id property="deptno" column="deptno"></id><result property="dname" column="dname"></result><result property="loc" column="loc"></result><collection property="empList" javaType="java.util.List" ofType="domain.Emp"><id property="empno" column="empno"></id><result property="ename" column="ename"></result><result property="sal" column="sal"></result></collection></resultMap></mapper>
