广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Mybatis中resultMap的使用总结
  • 945
分享到

Mybatis中resultMap的使用总结

2024-04-02 19:04:59 945人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

mybatis的介绍以及使用:Http://www.mybatis.org/mybatis-3/zh/index.html resultMap是Mybatis最强大的元素,它可以将查

mybatis的介绍以及使用:Http://www.mybatis.org/mybatis-3/zh/index.html

resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。

resultMap包含的元素:


<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性-->
<resultMap id="唯一的标识" type="映射的pojo对象">
  <id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" />
  <result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/>
  <association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
    <id column="关联pojo对象对应表的主键字段" jdbcType="字段类型" property="关联pojo对象的主席属性"/>
    <result  column="任意表的字段" jdbcType="字段类型" property="关联pojo对象的属性"/>
  </association>
  <!-- 集合中的property须为oftype定义的pojo对象的属性-->
  <collection property="pojo的集合属性" ofType="集合中的pojo对象">
    <id column="集合中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" />
    <result column="可以为任意表的字段" jdbcType="字段类型" property="集合中的pojo对象的属性" />  
  </collection>
</resultMap>

如果collection标签是使用嵌套查询,格式如下:


<collection column="传递给嵌套查询语句的字段参数" property="pojo对象中集合属性" ofType="集合属性中的pojo对象" select="嵌套的查询语句" > 
 </collection>

注意:<collection>标签中的column:要传递给select查询语句的参数,如果传递多个参数,格式为column= ” {参数名1=表字段1,参数名2=表字段2} ;

以下以实例介绍resultMap的用法:

一、简单需求:一个商品的结果映射;

1、创建商品pojo对象:


public class TShopSku  {
    
    private Long id;

    
    private String skuName;

    
    private Long cateGoryId;

   
    
    public Long getId() {
        return id;
    }

    
    public void setId(Long id) {
        this.id = id;
    }

    
    public String getSkuName() {
        return skuName;
    }

    
    public void setSkuName(String skuName) {
        this.skuName = skuName == null ? null : skuName.trim();
    }

    
    public Long getCategoryId() {
        return categoryId;
    }

    
    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

对应的resultMap:


<resultMap id="BaseResultMap" type="com.meikai.shop.entity.TShopSku">
    <id column="ID" jdbcType="BIGINT" property="id" />
    <result column="SKU_NAME" jdbcType="VARCHAR" property="skuName" />
    <result column="CATEGORY_ID" jdbcType="BIGINT" property="categoryId" />
</resultMap> 

二、商品pojo类添加属性集合:

一个商品会有一些属性,现在需要将查询出的商品属性添加到商品对象中,首先需要在原商品pojo类的基础上中添加属性的集合:



    private List<TShopAttribute> attributes;
   
    
    public List<TShopAttribute> getAttributes() {
        return attributes;
    }
    
    
     public void setAttributes(List<TShopAttribute> attributes) {
        this.attributes = attributes;
     }

将Collection标签添加到resultMap中,这里有两种方式:

1、嵌套结果:

对应的resultMap:


<resultMap id="BasePlusResultMap" type="com.meikai.shop.entity.TShopSku">
    <id column="ID" jdbcType="BIGINT" property="id" />
    <result column="SKU_NAME" jdbcType="VARCHAR" property="skuName" />
    <result column="CATEGORY_ID" jdbcType="BIGINT" property="categoryId" />
    <collection property="attributes" ofType="com.meikai.shop.entity.TShopAttribute" > 
        <id column="AttributeID" jdbcType="BIGINT" property="id" />
        <result column="attribute_NAME" jdbcType="VARCHAR" property="attributeName" />
    </collection>
</resultMap>

查询语句:


<select id="getById"  resultMap="basePlusResultMap">
    select s.ID,s.SKU_NAME,s.CATEGORY_ID,a.ID,a.ATTRIBUTE_NAME
    from t_shop_sku s,t_shop_attribute a 
    where s.ID =a.SKU_ID and s.ID = #{id,jdbcType =BIGINT};
</select>

2、关联的嵌套查询(在collection中添加select属性):

商品结果集映射resultMap:


<resultMap id="BasePlusResultMap" type="com.meikai.shop.entity.TShopSku">
    <id column="ID" jdbcType="BIGINT" property="id" />
    <result column="SKU_NAME" jdbcType="VARCHAR" property="skuName" />
    <result column="CATEGORY_ID" jdbcType="BIGINT" property="categoryId" />
    <collection column="{skuId=ID}" property="attributes" ofType="com.meikai.shop.entity.TShopAttribute" select="getAttribute" > 
    </collection>
</resultMap>

collection的select会执行下面的查询属性语句:


<select id="getAttribute"  resultMap="AttributeResultMap">
    select a.ID,s.ATTRIBUTE_NAME
    from t_shop_attribute a
    where  a.ID = #{skuId,jdbcType =BIGINT};
</select>

属性结果集映射:


<resultMap id="AttributeResultMap" type="com.meikai.shop.entity.TShopAttribute">
    <id column="ID" jdbcType="BIGINT" property="id" />
    <result column="ATTRIBUTE_NAME" jdbcType="VARCHAR" property="attributeName" />
</resultMap>

BasePlusResultMap包含了属性查询语句的Collection

所以通过下面的查询商品语句就可获得商品以及其包含的属性集合:


<select id="getById"  resultMap="BasePlusResultMap">
    select s.ID,s.SKU_NAME,s.CATEGORY_ID
    from t_shop_sku s
    where  s.ID = #{id,jdbcType =BIGINT};
</select>

到此这篇关于Mybatis中resultMap的使用总结的文章就介绍到这了,更多相关Mybatis resultMap 使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Mybatis中resultMap的使用总结

本文链接: https://www.lsjlt.com/news/129499.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis中resultMap的使用总结
    Mybatis的介绍以及使用:http://www.mybatis.org/mybatis-3/zh/index.html resultMap是Mybatis最强大的元素,它可以将查...
    99+
    2022-11-12
  • 怎么在mybatis中使用resultmap
    本篇文章给大家分享的是有关怎么在mybatis中使用resultmap,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL 映射XML 文件是所有sql语句放置的地方。需要定义...
    99+
    2023-05-31
    mybatis resultmap
  • Mybatis中resultMap怎么用
    小编给大家分享一下Mybatis中resultMap怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!resultMap是Mybatis最强大的元素,它可以将查...
    99+
    2023-06-20
  • mybatis-plus中resultMap怎么用
    小编给大家分享一下mybatis-plus中resultMap怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!不一致,那么用来接收查询出来的result对应的...
    99+
    2023-06-25
  • 解析mybatis-plus中的resultMap简单使用
    不一致,那么用来接收查询出来的result对应的数据将会是Null,如果不使用resultMap,那么一般为了避免pojo对象对应的属性为Null,会采用SQL语句中的别名,将查询出...
    99+
    2022-11-12
  • Mybatis 复杂对象resultMap的使用
    目录Mybatis 复杂对象resultMap下面是resultMap的定义普通属性省略说明select相关配置Model代码resultMap处理复杂映射问题Ⅰ 多对一查询:学生——老师(1) 创建实体类POJO(2) 创建学生...
    99+
    2015-03-06
    Mybatis复杂对象 复杂对象resultMap
  • mybatis中resultMap怎么定义及使用
    这篇文章主要介绍“mybatis中resultMap怎么定义及使用”,在日常操作中,相信很多人在mybatis中resultMap怎么定义及使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis中r...
    99+
    2023-06-30
  • mybatis简单resultMap使用详解
    Mybatis的介绍以及使用:http://www.mybatis.org/mybatis-3/zh/index.html mybatis是一个半自动的ORM(Object Rela...
    99+
    2022-11-12
  • MyBatis元素resultMap如何使用
    这篇文章主要介绍“MyBatis元素resultMap如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MyBatis元素resultMap如何使用”文章能帮助大家解决问题。1.resultMa...
    99+
    2023-07-02
  • SpringBoot使用mybatis步骤总结
    SpringBoot使用mybatis 1.导入 MyBatis 所需要的依赖 <!--mybatis-spring-boot-starter:整合--> ...
    99+
    2022-11-12
  • Mybatis之@ResultMap,@Results,@Result注解的使用
    目录Mybatis注解@Results、@Result、@ResultMap问题方法一方法二mybatis注释使用resultMap对应的注释,及对应注解Results、Result...
    99+
    2022-11-12
  • Mybatis中resultMap的Colum和property怎么用
    本文小编为大家详细介绍“Mybatis中resultMap的Colum和property怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis中resultMap的Colum和property怎么用”文章能帮助大家解决疑惑,下...
    99+
    2023-06-26
  • MyBatis-Plus中如何使用ResultMap的方法示例
    目录问题说明解决方法自定义@AutoResultMap注解MyBatis-Plus (简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、...
    99+
    2022-11-12
  • Mybatis的@ResultMap,@Results,@Result注解怎么使用
    本篇内容主要讲解“Mybatis的@ResultMap,@Results,@Result注解怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis的@ResultMap,@Resu...
    99+
    2023-06-21
  • mybatis-puls中的resultMap数据映射
    目录mybatis-puls resultMap数据映射resultTyperesultMapMapper中基本查询语句resultMap中字段映射Mybatis ResultMap...
    99+
    2022-11-12
  • MyBatis resultMap id标签的错误使用方式
    目录MyBatis resultMap id标签的错误使用本节的问题主要是我对mybatis id标签的错误使用resultMap标签的使用规则自定义结果映射规则associatio...
    99+
    2022-11-13
  • Mybatis的where标签使用总结梳理
    目录背景原始的手动拼接Mybatis where标签的使用进阶:自定义trim标签where语句的坑小结背景 在上篇文章,我们系统地学习了where 1...
    99+
    2022-11-13
  • MyBatis元素resultMap介绍及使用详解
    1.resultMap resultMap 元素是 MyBatis 中最重要最强大的元素。解决类属性名和数据库中表字段名不一致问题ResultMap 的设计思想是,对简单的语句做到零...
    99+
    2022-11-13
  • 详解MyBatis中column属性的总结
    在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名。 下面我们...
    99+
    2022-11-13
  • Mybatis中resultMap的Colum和property属性详解
    目录resultMap的Colum和property属性1: resultMap标签2:使用情况2.1 简单查询2.2 一对一2.3 一对多resultMap对column和prop...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作