三分钟读懂mybatis中resultMap和resultType区别

 更新时间:2023年07月31日 08:34:54   作者:吴皮皮今天吃饱了吗  
这篇文章主要给大家介绍了mybatis中resultMap和resultType区别的相关资料,resultType和resultMap都是mybatis进行数据库连接操作处理返回结果的,需要的朋友可以参考下

先说结论:

resultmap与resulttype的区别为:对象不同、描述不同、类型适用不同。
说人话就是,resultmap和resulttype功能差不多,但是resultmap功能更强大

resultType:

使用resultType进行输出映射时,只有查询出来的列名和pojo(简单实例对象)中的属性名一致,该列才可以映射成功。

武断一点来说:一般是以下这几种类型才用resultType

1、基本类型 :resultType=基本类型(int,String等基本数据类型)

2、List类型: resultType=List中元素的类型

3、Map类型 单条记录:resultType =map

                     多条记录:resultType =Map中value的类型

   <select id="count" resultType="int">
        select count(id) from t_paper as p
        LEFT JOIN  t_type as t
        ON
        p.type_id=t.id
   </select>

resultMap:

前面说过,resultMap和resultType的功能类似,但是resultMap更强大一点,resultMap可以实现将查询结果映射为复杂类型的pojo,简单来说就是,resultType解决不了的,都可以交给resultMap来解决。 在使用resultMap之前我们需要先定义一个符合当前需求的resultMap.。
   <resultMap id="paperResult" type="Paper">
        <!-- column:数据库字段名 property:实体的属(变量)名 -->
        <result column="id" property="id"/> 
        <result column="title" property="title"/>
        <result column="type_id" property="typeId"/>
        <result column="paper_summary" property="paperSummary"/>
        <result column="paper_path" property="paperPath"/>
    </resultMap>
    <select id="selectPaperListByCondition" resultMap="paperResult">
           SELECT
              p.*, t.type_name from t_paper as p
           LEFT JOIN
              t_type as t
           ON
              p.type_id=t.id
           WHERE
              title='' and type_name=''
            <where>
               <if test="title != null and title != ''">
                   and title like '%${title}%'
               </if>
                <if test="typeName != null and typeName != ''">
                    and type_name=#{typeName}
                </if>
            </where>
           limit #{start},#{size}
    </select>

总结 

到此这篇关于mybatis中resultMap和resultType区别的文章就介绍到这了,更多相关mybatis resultMap和resultType区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现ModbusTCP通信功能

    Java实现ModbusTCP通信功能

    使用ModbusTCP实现和硬件设备通信功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • 编码实现从无序链表中移除重复项(C和JAVA实例)

    编码实现从无序链表中移除重复项(C和JAVA实例)

    如果不能使用临时缓存,你怎么实现无序链表中移除重复项(?C和JAVA实例无序链表中移除重复项。
    2013-10-10
  • mybatis处理枚举类的简单方法

    mybatis处理枚举类的简单方法

    这篇文章主要给大家介绍了关于mybatis处理枚举类的简单方法,文中通过示例代码介绍的非常详细,对大家学习或者使用mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 解决springboot启动失败的问题('hibernate.dialect' not set)

    解决springboot启动失败的问题('hibernate.dialect' not set)

    这篇文章主要介绍了解决springboot启动失败的问题('hibernate.dialect' not set),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring Boot集成Mybatis中如何显示日志的实现

    Spring Boot集成Mybatis中如何显示日志的实现

    这篇文章主要介绍了Spring Boot集成Mybatis中如何显示日志的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MyBatis-Plus整合金仓数据库KingbaseES的实战指南

    MyBatis-Plus整合金仓数据库KingbaseES的实战指南

    随着数字中国建设的深入推进,国产数据库在关键业务系统中扮演着越来越重要的角色,本文将通过一个电商系统的实战案例,深入探讨MyBatis-Plus整合KingbaseES的详细步骤吧
    2025-10-10
  • Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

    Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

    这篇文章主要介绍了Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java cookie和session会话技术介绍

    Java cookie和session会话技术介绍

    session的工作原理和cookie非常类似,在cookie中存放一个sessionID,真实的数据存放在服务器端,客户端每次发送请求的时候带上sessionID,服务端根据sessionID进行数据的响应
    2023-04-04
  • Springboot配置文件Nacos和环境变量优先级详解

    Springboot配置文件Nacos和环境变量优先级详解

    这篇文章主要介绍了Springboot配置文件Nacos和环境变量优先级,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Protobuf详解及入门指南附完整代码

    Protobuf详解及入门指南附完整代码

    Protobuf是一种由Google开发的二进制序列化格式,用于高效地序列化和反序列化结构化数据,它广泛应用于分布式系统、RPC框架和数据存储中,提供了高效性、简洁性、版本兼容性和语言无关性,本文介绍Protobuf详解及入门指南,感兴趣的朋友一起看看吧
    2025-03-03

最新评论