Mybatis框架的多对一关联关系(六)

时间:2022-12-04 19:30:11

一、一对多的关联映射

  一对多关联查询多表数据

1接口

public interface IDeptDAO {

    //根据部门编号查询该部门单个查询
public Emp getEmpById(Integer id);
}

2小配置

<?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="cn.happy.dao.IDeptDAO"> <select id="selectDeptByemp" resultType="Dept">
select deptno,deptname from dept where deptno=#{deptno}
</select> <resultMap type="Emp" id="empMapper">
<id property="empno" column="empno"/>
<result property="empname" column="empname"/>
<!-- 多对一 -->
<association property="dept" javaType="Dept" select="selectDeptByemp"
column="deptno"
/>
</resultMap> <!-- manytoone-->
<!-- resultMap的id="empMapper" -->
<!-- select标签id="getEmpById"接口的方法名一样 -->
<select id="getEmpById" resultMap="empMapper">
select deptno,empno,empname from emp
where empno=#{empno}
</select> </mapper>

3测试类

package cn.happy.test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test; import cn.happy.dao.IDeptDAO;
import cn.happy.entity.Emp; import cn.happy.util.MybatisUtil; public class MyTest {
IDeptDAO dao;
@Before
public void initData() throws IOException{
SqlSession session = MybatisUtil.getSession();
dao = session.getMapper(IDeptDAO.class);
} @Test
public void getEmpById() throws IOException{
Emp emp = dao.getEmpById(2);
System.out.println(emp.getEmpname());
} }

    剩余工具类和实体类可以去之前的Mybatis框架的博客园去找。