基于Mapper代理配置的Mybatis多表查询一对多

 基于Mapper代理配置的Mybatis多表查询一对多映射

注意:


这里我们在mybatis总配置里设置包扫描

<mappers>
<!-- 自动扫描指定包中的sql映射文件 -->
<package name="com.ashes.mapper"/>
</mappers>

一、使用内连接

1、编写Mapper接口,记住Mapper代理规范

基于Mapper代理配置的Mybatis多表查询一对多        基于Mapper代理配置的Mybatis多表查询一对多

2、编写Mapper.xml文件


通过接口方法名找到对应id的select,再通过select的resultMap找到id为rm的resultMap

查看type是否与方法返回类型相同,今天我们用的一个信息标签collection


collection:用于配置一对多的结果集映射

ofType:用于指定装载到集合中的对象的数据类型(这里是emp表)

基于Mapper代理配置的Mybatis多表查询一对多

3、测试

基于Mapper代理配置的Mybatis多表查询一对多


二、使用两个单表查询

1、编写Mapper接口方法

基于Mapper代理配置的Mybatis多表查询一对多      基于Mapper代理配置的Mybatis多表查询一对多


2、通过接口方法名找到对应的id为方法名的select,再通过resultMap的值找到对应的id为rm的resultMap标签,

查看对应type是否为方法返回值类型,此处的collection有变化,这里主要通过主键外键进行连接,所以这里的

deptno是外键,对应的list是我们在Dept表的POJO中定义的,后面的select属性组要我们去找相应id的select

标签,拿到符合list的resultType。


基于Mapper代理配置的Mybatis多表查询一对多

3、测试

基于Mapper代理配置的Mybatis多表查询一对多