MyBatis的resultType和resultMap区别

resultType和resultMap是在使用 MyBatis 框架时,映射查询结果到对象时使用的两个不同的配置元素。它们的主要区别在于它们如何映射 SQL 查询的结果集到 Java 对象。

1. resultType

  • resultType是一个简单的类型别名或者是一个完全限定的类名。

  • 它用于将查询结果直接映射到一个简单的 Java 对象或者一个 Map 对象。

  • 当使用resultType时,MyBatis会默认按照列名和对象属性名进行映射,如果列名和属性名不一致,需要手动指定映射关系。

  • 适用于简单场景,当结果集直接对应于一个 Java 对象时。

示例:

XML 复制代码
<select id="selectUser" resultType="com.example.User">
     SELECT id, username, password FROM users WHERE id = #{id}
   </select>

2. resultMap

  • resultMap提供了一个更高级的、细粒度的控制,允许定义复杂的映射策略。
  • 它允许为每个列指定一个映射路径,包括嵌套属性和集合属性。
  • resultMap可以用于处理关联查询,将多个表的结果映射到一个对象或者对象的集合中。
  • 它提供了更复杂的映射功能,如集合、继承、嵌套结果等。

示例:

XML 复制代码
<resultMap id="userResultMap" type="com.example.User">
     <id property="id" column="id" />
     <result property="username" column="username" />
     <result property="password" column="password" />
</resultMap>
   <select id="selectUser" resultMap="userResultMap">
     SELECT id, username, password FROM users WHERE id = #{id}
   </select>

总的来说,resultType适用于简单的映射,而 resultMap提供了更复杂的映射能力,适用于需要精细控制结果集映射的场景。

相关推荐
小菜日记^_^4 小时前
Maven高级篇
java·spring boot·后端·spring·maven·intellij-idea·mybatis
计算机毕设指导65 小时前
基于SpringBoot的教学辅助平台系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·mybatis
2的n次方_7 小时前
MyBatis Plus 项目的创建和使用
数据库·mybatis·mybatis plus
武子康7 小时前
Java-08 深入浅出 MyBatis - 多对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis
CSDN专家-赖老师(软件之家)9 小时前
养老院管理系统+小程序项目需求分析文档
vue.js·人工智能·小程序·mybatis·springboot
弗拉唐19 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
凌冰_20 小时前
IDEA2023 SpringBoot整合MyBatis(三)
spring boot·后端·mybatis
Elaine2023911 天前
零碎04 MybatisPlus自定义模版生成代码
java·spring·mybatis
一二小选手1 天前
【MyBatis】全局配置文件—mybatis.xml 创建xml模板
xml·java·mybatis