当前位置: 首页 > news >正文

resultMap 标签

resultMap 是 MyBatis 框架中用于定义数据库结果集与 Java 对象之间映射关系的核心标签。它的主要作用是解决数据库字段名与 Java 对象属性名不一致的问题,或处理复杂查询(如关联查询、嵌套对象、集合映射等)时的映射需求。

主要用途

  1. 字段名与属性名不一致
    当数据库表的字段名(如 user_name)和 Java 对象的属性名(如 userName)不一致时,通过 resultMap 可以显式指定映射关系。

    <resultMap id="userMap" type="User">
        <result property="userName" column="user_name"/>
        <result property="age" column="user_age"/>
    </resultMap>

    2.映射复杂对象
    处理嵌套对象(如一对一、一对多关系)。例如:

                        一对一关联:使用 <association> 映射单个对象。

                        一对多关联:使用 <collection> 映射集合。

<resultMap id="orderMap" type="Order">
    <id property="id" column="order_id"/>
    <result property="amount" column="order_amount"/>
    <!-- 一对一关联 User 对象 -->
    <association property="user" javaType="User">
        <result property="userName" column="user_name"/>
    </association>
    <!-- 一对多关联 OrderItem 集合 -->
    <collection property="items" ofType="OrderItem">
        <result property="itemName" column="item_name"/>
    </collection>
</resultMap>

      

示例场景

假设数据库查询结果如下:

SELECT 
    id AS user_id, 
    name AS user_name, 
    age AS user_age 
FROM users

而 Java 对象为:

public class User {
    private Integer id;
    private String name;
    private Integer age;
    // getters/setters...
}

使用  resultMap标签  解决字段名不匹配:

<resultMap id="userResultMap" type="User">
    <id property="id" column="user_id"/>
    <result property="name" column="user_name"/>
    <result property="age" column="user_age"/>
</resultMap>

<select id="selectUser" resultMap="userResultMap">
    SELECT * FROM users
</select>

相关文章:

  • 变相提高大模型上下文长度-RAG文档压缩-2.带早停机制的map-refine
  • pgsql用户和权限管理
  • 安卓基础(持续更新的笔记)
  • Kotlin Lambda
  • 2025年,如何选择IT监控平台
  • CEF132 编译指南 Linux 篇 - CEF 编译实战:构建 CEF(六)
  • 【Redis】下载安装Redis和Redis图形化界面工具教程(2024最新版本,史上最详细)
  • 石子合并
  • windows编译使用gtest
  • SpringBoot3 快速启动框架
  • VS2022中.Net Api + Vue 从创建到发布到IIS
  • Redis的常见数据结构
  • 内容中台驱动企业CMS架构优化与高效策略
  • springCloud-2021.0.9 之 GateWay 示例
  • Android Studio 打包App问题
  • 从0开始的操作系统手搓教程 4:做好准备,跳到加载器(Loader)
  • Word中设置表格在同一页
  • 深入解析SVG图片原理:从基础到高级应用
  • SpringCloud框架下的注册中心比较:Eureka与Consul的实战解析
  • elasticsearch8 linux版以服务的方式启动
  • 咖啡戏剧节举办第五年,上生新所“无店不咖啡,空间皆可戏”
  • 欧盟官员:欧盟酝酿对美关税政策反制措施,包含所有选项
  • 默茨在德国联邦议院第一轮投票中未能当选总理
  • 黄道炫:南京102天——黄镇球的防空日记
  • 探访小剧场、直播间、夜经济:五一假期多地主官调研新消费
  • 解放日报头版:上海张江模力社区托举“年轻的事业”