Mybatis中resultMap配置细则

本文详细介绍了Mybatis中resultMap的配置,包括处理一对一关系的`association`和一对多关系的`collection`。通过association配置,实现了根据省份ID查询对应的别名信息,而collection则用于根据省份ID获取其下属的所有城市,自动填充到Province对象的cities属性中。
摘要由CSDN通过智能技术生成

Mybatis中resultMap配置细则

1、级联属性

在实际的业务场景中,数据库表之间会涉及到一对一、一对多、多对多等多种关系,mybatis中resultMap提供了association、collection这些标签来处理这种关系。

1.1、associaton

association是mybatis支持级联的一部份,association主要是用来解决一对一关系的,假设我现在有两张表,一张表示省份,一张表示省份的别名,假设一个省只有一个别名(实际上有的省份有两个别名),我们来看一下如下两张表。

1.省份表:
在这里插入图片描述

说明:area字段表示该省市属于北方还是南方

2.别名表:

在这里插入图片描述

别名表中pid表示省份的id,假设我现在有一个实体类,Province,该类有两个属性,一个叫做name表示省份的名字,一个叫做alias表示省份的别名,那么我在查询的时候可以通过association来实现这种一对一级联,实现方式如下:

创建Alias实体类

public class Alias {
   
    private Long id;
    private String name;
}

创建Province实体类

public class Province {
   
    private Long id;
    private String name;
    private Alias alias;
}

创建AliasMapper

public interface AliasMapper {
   
    Alias findAliasByPid(Long id);
}

创建aliasMapper.xml(根据省份的id找到省份的别名)

<?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="org.sang.db.AliasMapper">
    <select id="findAliasByPid" parameterType="long" resultType="org.sang.bean.Alias">
        SELECT * FROM alias WHERE pid=#{id}
    </select>
</mapper>

创建ProvinceMapper

public interface ProvinceMapper {
   
    List<Province> getProvince();
}

创建provinceMapper.xml

<?xml version&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值