十三、【源码】ResultMap解析

源码地址:https://github.com/mybatis/mybatis-3/

仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/13-resultMap

ResultMap解析

分为两部分:解析和使用

1.解析

  • 解析XML的时候单独解析所有的resultMap标签,封装成ResultMap对象存入configuration中

  • 解析XML中的SQL语句,封装MappedStatement对象,这里会根据SQL的返回类型是resultMap还是resultType做处理。如果是resultMap,就从configuration中取出ResultMap对象设置到MappedStatement中;如果是resultType,就将其封装成一个ResultMap对象设置到MappedStatement中。

2.使用

  • 执行完的结果集会被ResultSetWrapper包装,有两个属性mappedColumnNamesMap和unMappedColumnNamesMap,其实就是如果执行的这个SQL如果是resultMap,mappedColumnNamesMap有值;如果是resultType,那么unMappedColumnNamesMap有值。
  • 做结果集映射,如果是resultMap,执行的是DefaultResultSetHandler#applyPropertyMappings方法,根据resultMap的映射一个个设置值;如果是resultType,执行的是DefaultResultSetHandler#applyAutomaticMappings方法,进行自动映射,这里metaObject.findProperty(propertyName, true);
    使用驼峰要设置为true,否知会拿不到实体类的属性

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 核心模块揭秘 | 19 期 | 锁模块里有什么?什么样?

InnoDB 中管理表锁和行锁的锁模块,也就是传说中的锁子系统,在内存里是什么样的? 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品…

LabVIEW开发EOL功能测试系统

LabVIEW开发EOL功能测试系统 介绍了一种基于LabVIEW开发的EOL功能测试系统方案,涵盖软件架构、工作流程、模块化设计、低耦合性、易于修改与维护、稳定性及硬件选型。系统通过高效的CAN通信实现对电机控制器的全面测试,确保运行可靠并支持未来的升级需求…

危机公关之负面信息优化技巧解析

当今时代,网络发布信息没有任何门槛,任何人可以通过互联网发布信息,这使负面信息产生的可能性大大提高,企业形成危机的可能性也大大提高。针对网络上的负面信息处理得当可能并不会对品牌造成伤害,处理不当就很可能给企…

QT之可拖动布局研究

1. 背景 最开始只用到了最基本的水平布局 、垂直布局。它的好处就是窗口整体缩放后,控件也自动等比例缩放。 但是比如水平布局之中的控件宽度比例、垂直布局之中的控件高度比例都是固定的。 平时也不怎么开发界面,最近有个需求,想界面上的…

Atlassian企业日技术分享:AI在ITSM中的创新实践与应用、Jira服务管理平台AI功能介绍

2024年5月17日,Atlassian中国合作伙伴企业日活动在上海成功举办。活动以“AI协同 创未来——如何利用人工智能提升团队协作,加速产品交付”为主题,深入探讨了AI技术在团队协作与产品交付中的创新应用与实践,吸引了众多业内专家、企…

深圳比创达电子EMC|EMC与EMI一站式解决方案:攻克电磁兼容难题

在当今这个科技日新月异、电子产品层出不穷的时代,电磁兼容(EMC)与电磁干扰(EMI)问题愈发凸显其重要性。为了确保电子设备的正常运行,减少电磁干扰对环境和人体的影响,EMC与EMI一站式解决方案成…

【回眸】Linux内核(十)system()函数与popen()函数

前言 system()函数的作用是执行一个shell脚本或者shell指令 popen与system()函数类似,不同点是popen()函数可以获取运行的shell脚本或者命令的输出结果 system() 函数参数 #include <stdlib.h> int system(const char *comand) 参考示例代码: #include <stdio.…

2023年全国消费品“增品种、提品质、创品牌”三品战略发展成果报告

来源&#xff1a;赛迪&欧特欧 近期历史回顾&#xff1a; 2023工业无线电磁环境白皮书——有色金属制造行业.pdf 2024出海企业人才发展实践指南.pdf 2024年全球电子商务市场.pdf 宝钢低碳钢铁技术策划及开发-钟勇.pdf 2023-2024年度中国智能制造产业发展报告.pdf 2024精准医…

【AI大模型】Function Calling

目录 什么是Function Calling 示例 1&#xff1a;调用本地函数 Function Calling 的注意事项 支持 Function Calling 的国产大模型 百度文心大模型 MiniMax ChatGLM3-6B 讯飞星火 3.0 通义千问 几条经验总结 什么是Function Calling Function Calling 是一种函数调用机…

【C++ | 构造函数】类的构造函数详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-06 0…

HCIA-RS基础-VLAN配置

目录 前言创建拓扑创建VLAN查看创建的VLAN配置trunk口并放行VLAN配置access接口查看所有vlan基本信息测试网络连通性命令合集 前言 VLAN定义&#xff1a;VLAN是一种将局域网内的设备从逻辑上划分成一个个网段&#xff0c;从而实现虚拟工作组的新兴数据交换技术。VLAN优点&…

【面试笔记】嵌入式软件工程师,汽车电子软件相关

文章目录 1. C语言基础1.1 const1.2 static1.3 回调函数的用法1.4 宏定义1.5 编译、链接过程1.6 堆与栈的区别&#xff1f;1.7 简单的字符串算法题&#xff0c;C语言实现1.7.1 给定一个字符串&#xff0c;按顺序筛选出不重复的字符组成字符串&#xff0c;输出该字符串1.7.2 给定…

Python3 迭代器和生成器

前言 本文主要介绍Python中的迭代器和生成器&#xff0c;主要内容包括 迭代器概述、生成器简介。 文章目录 前言一、迭代器简介二、生成器简介 一、迭代器简介 在 Python 中&#xff0c;迭代器(iterator)是一个实现了迭代器协议&#xff08;Iterator Protocol&#xff09;的…

opencv进阶 ——(十一)基于RMBG实现生活照生成寸照

实现步骤 1、检测人脸&#xff0c;可以使用opencv自带的级联分类器或者dlib实现人脸检测 2、放大人脸范围&#xff0c;调整到正常寸照尺寸 3、基于RMGB算法得到人像掩码 4、生成尺寸相同的纯色背景与当前人像进行ALPHA融合即可 alpha融合实现 void alphaBlend(cv::Mat&…

1 机器人软件开发学习所需通用技术栈(一)

机器人软件工程师技术路线&#xff08;如有缺失&#xff0c;欢迎补充&#xff09; 1. 机器人软件开发工程师技术路线 1.1 基础知识 C/C编程&#xff1a;掌握C/C语言基础&#xff0c;包括数据结构、算法、内存管理等。操作系统&#xff1a;了解Linux或Windows等操作系统的基本…

2.1 初识Windows程序

Windows程序设计是一种面向对象的编程。Windows操作系统以数据结构的形式定义了大量预定义的对象作为操作系统的数据类型。Windows动态链接库提供了各种各样的API接口函数供Windows应用程序调用。一个Windows应用程序是运行在Windows操作系统之上的。这些API接口函数的调用所实…

【Vue】路由的基本使用

文章目录 一、固定5个固定的步骤二、代码示例三、两个核心步骤四、完整代码 vue-router插件作用 修改地址栏路径时&#xff0c;切换显示匹配的组件 说明 Vue 官方的一个路由插件&#xff0c;是一个第三方包 官网 https://v3.router.vuejs.org/zh/ VueRouter的使用&#xff0…

TCP/IP协议介绍——三次握手四次挥手

TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff0c;传输控制协议/网际协议&#xff09;是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议&#xff0c;而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议…

CSS学习|css三种导入方式、基本选择器、层次选择器、结构伪类选择器、属性选择器、字体样式、文本样式

第一个css程序 css程序都是在style标签中书写 打开该网页&#xff0c;可以看到h1标签中的我是标题被渲染成了红色 可以在同级目录下创建一个css目录&#xff0c;专门存放css文件&#xff0c;可以和html分开编写 然后在html页面中&#xff0c;利用link标签以及css文件地址&…

大模型基架:Transformer如何做优化?

大模型的基础模式是transformer&#xff0c;所以很多芯片都实现先专门的transformer引擎来加速模型训练或者推理。本文将拆解Transformer的算子组成&#xff0c;展开具体的数据流分析&#xff0c;结合不同的芯片架构实现&#xff0c;分析如何做性能优化。 Transformer结构 tr…