mybatis多对一嵌套结果:
多对一嵌套结果的特点就是:只发送一条sql语句:
步骤:
新建domain类:
新建一个domainMapper接口类:
配置domainMapper.xml文件:这里是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">
<!--
namespace:命名空间 -> 要求:一个项目中命名空间必须唯一;
-->
<mapper namespace="cn.itsource.mybatis.manytoone_02.EmployeeMapper">
<select id="findAll" resultMap="EmployeeMap">
select e.id,e.username,e.age,e.dept_id,d.id did,d.name dname from employee e left join department d on e.dept_id=d.id
</select>
<!-- private Long id;
private String username;
private Integer age;
private Department department;
column: 代表的是数据库中对应字段的值
property:代表的是domain中对应的字段值
-->
<resultMap id="EmployeeMap" type="cn.itsource.mybatis.manytoone_02.Employee">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="age" property="age"/>
<association property="department"
javaType="cn.itsource.mybatis.manytoone_02.Department"
>
<id column="did" property="id"/>
<result column="dname" property="name"/>
</association>
</resultMap>
</mapper>
连接数据库配置,mybatis主配置和自定义获取SQLSession对象的工具类省略,详细请看mybatis学习笔记01
测试:
测试结果: