专栏首页chenchenchenMybatis自定义resultMap

Mybatis自定义resultMap

根据门店ID,查询门店和服务列表,一个门店对应多个服务

<!-- 门店和服务列表查询映射结果 -->
    <resultMap id="storeAndServices"
               type="com.mall.vo.response.StoreDetailRes">
        <result property="storeId" column="store_id" />
        <result property="storeImg" column="store_img" />
        <result property="name" column="storename" />
        <result property="address" column="address" />
        <result property="phone" column="phone" />
        <result property="lon" column="longitude" />
        <result property="lat" column="latitude" />
        <collection property="servicelist" javaType="list"
                    ofType="com.mall.vo.response.ServiceDetailRes">
            <result property="serviceCode" column="service_code" />
            <result property="serviceName" column="service_name" />
            <result property="price" column="actually_amount" />
            <result property="serviceType" column="service_type" />
        </collection>
    </resultMap>

    <select id="getStoreDetail" resultMap="storeAndServices">
        SELECT
            t.store_id,
            t.store_img,
            t.storename,
            t.address,
            t.phone,
            t.longitude,
            t.latitude,
            t1.service_code,
            t1.service_name,
            t1.actually_amount,
            t1.service_type
        FROM
            t_store t,
            t_service t1
        WHERE
            t.store_id = t1.store_id
        <if test="storeId !=null and storeId !='' ">
            AND t.store_id = #{storeId}
        </if>

    </select>

通用查询映射结果,避免使用select *

<!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.mall.entity.Service">
        <id column="id" property="id" />
        <result column="store_id" property="storeId"/>
        <result column="service_code" property="serviceCode"/>
        <result column="service_name" property="serviceName"/>
        <result column="service_type" property="serviceType"/>
        <result column="actually_amount" property="actuallyAmount"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        ID, STORE_ID, SERVICE_CODE, SERVICE_NAME, SERVICE_TYPE, ACTUALLY_AMOUNT
    </sql>

<select id="getServiceList" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"/>
        FROM
            t_service t
        <trim prefix="WHERE" prefixOverrides="AND |OR ">
            <if test="storeId !=null and storeId !='' ">
                AND t.store_id = #{storeId}
            </if>
        </trim>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MyBatis Plus - xml中如何使用autoResultMap构造的ResultMap

    MyBatis Plus本身并不是一个动态的ORM,而只是在mybatis初始化的时候,为mybatis提供常用的SQL语句,resultMap设置,并不会改变...

    十毛
  • Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

    在上篇文章 Mybatis 解析 SQL 源码分析一 介绍了 Maper.xml 配置文件的解析,但是没有解析 resultMap 节点,因为该解析比较复杂,也...

    Java技术编程
  • ResultMap与ResultType的区别

    那么什么样的数据才叫单个集合,什么样的数据才叫多重集合呢?我们通过下面两张图,大家就能理解了:

    萌萌哒的瓤瓤
  • Mybatis sql映射文件浅析 Mybatis简介(三)

    除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句。

    noteless
  • MyBatis 中 ResultType 和 ResultMap 的区别

    使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

    一个会写诗的程序员
  • 一文理清Mybatis中resultType与resultMap之间的关系和使用场景

    Mybatis ORM半自动映射框架对java开发工程师来说应该是必会的框架之一。它的好处这里不是我们讨论的重点。令很多刚刚入行的java开发小伙伴迷茫的是 r...

    码农小胖哥
  • 小师妹问我:Mybatis常见注解有哪些?

    Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下:

    田维常
  • MyBatis自动装配问题

    最近遇到同事在MyBatis的 mapper.xml文件里,定义了标签,但是里面并没有将数据库的列映射为java对象的属性的标签,我认为这种写法是错误的,这样会...

    明明如月学长
  • Mybatis深入了解(四)----输入输出映射

    通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、POJO的包装类型。 举个栗子:完成用户信息的综合查询,需要传入条件...

    令仔很忙
  • MyBatis XML详解

    原文:https://www.cnblogs.com/weijie4611/p/10450717.html

    小锋学长
  • 【MyBatis-3】MyBatis xml映射文件详解

    查询语句是 MyBatis 中最常用的元素之一,光能把数据存到数据库中价值并不大,只有还能重新取出来才有用,多数应用也都是查询比修改要频繁。对每个插入、更新或删...

    云深i不知处
  • Mybatis_day02

    Mybatis第二天 课程安排 对订单商品数据模型进行分析 高级映射: 实现一对一、一对多,多对多查询 延迟加载 查询缓存 一级缓存 二级缓存(了解mybati...

    Java帮帮
  • MyBatis 从浅入深 随笔整理

    (1)每个MyBatis的哟ing有都以一个SqlSessionFactory对象的实例为核心

    房上的猫
  • Mybatis系列第8篇:自动映射,使用需谨慎!

    Mybatis系列目标:从入门开始开始掌握一个高级开发所需要的Mybatis技能。

    路人甲Java
  • MyBatis 完全使用指南

    MyBatis作为一个轻量的SQL映射框架,确实很简单,但是知识点挺多,实际使用中还是会有时想不起来某个标签该怎么写,所以整理了这篇文章,以备查询。由于MyB...

    java思维导图
  • MyBatis 源码分析 - 映射文件解析过程

    在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程。由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因。所以我将映射文件解析过程的分...

    田小波
  • Mybatis【配置文件】

    映射文件 配置文件和映射文件还有挺多的属性我还没有讲的,现在就把它们一一补全 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为Ma...

    Java3y
  • Java学习笔记-全栈-web开发-15-MyBatis

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google c...

    devi
  • Mybatis—查询resultMap-多表关联{association-collection}–延迟加载

    resultMap: 结果映射。 自定义列名和java对象属性的对应关系。 常用在列名和属性名不同的情况。

    Java架构师必看

扫码关注云+社区

领取腾讯云代金券