news 2026/4/23 23:57:48

关于resultMap映射失败后为什么还能正常输出数据库表的相关内容

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于resultMap映射失败后为什么还能正常输出数据库表的相关内容

在学习Mybatis的过程中,我遇到了这样一个问题:

我这里是使用resultMap来自定义映射关系,我发现,我的主键和普通字段的映射关系即使是乱填的,我使用单元测试:

测试此函数后,输出如下:

我的数据库表如下:

实体类设置的属性如下:

private Integer departmentId; private String department;

这里我就有了一个疑问:

为什么这里的department还能正确输出数据库表的内容?我的resultMap的映射关系都是乱写的啊,为什么?

原因:MyBatis 的自动映射机制(auto-mapping)

resultMap 配置无效,但自动映射机制仍生效

column=“sgrg” 和 column=“sdfaf” 是不存在的数据库列名(实际列是 department_id 和 department)。

MyBatis 无法将这些无效列映射到任何属性,因此 resultMap 没有成功映射任何数据。

当 resultMap 无法处理这些列时(因为配置的列不存在),MyBatis 会回退到自动映射机制(auto-mapping)。

自动映射规则:

如果数据库列名与实体类属性名完全一致,MyBatis 会直接映射(无需额外配置)。

所以是因为我的实体属性设置的department和数据库列名完全一致,发生了自动映射,所以department还是能正确输出数据库表department列的内容.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 8:00:02

揭秘C++分布式通信底层机制:3步实现低延迟数据传输

第一章:揭秘C分布式通信底层机制:3步实现低延迟数据传输 在高并发、实时性要求严苛的系统中,C凭借其对内存和性能的精细控制,成为构建低延迟分布式通信系统的首选语言。通过合理设计网络通信模型,可显著降低节点间数据…

作者头像 李华
网站建设 2026/4/22 13:57:57

市场调研报告生成:竞品分析与趋势预测的AI视角

市场调研报告生成:竞品分析与趋势预测的AI视角 在企业竞争日益激烈的今天,市场调研不再是“季度性作业”,而是实时决策的核心依据。然而现实是,一份详尽的竞品分析报告动辄需要数天甚至数周——从数据采集、信息清洗到撰写成文&am…

作者头像 李华
网站建设 2026/4/20 17:29:03

故障排查指南构建:基于历史工单的知识沉淀方式

故障排查指南构建:基于历史工单的知识沉淀方式 在企业加速落地生成式 AI 的今天,一个现实问题日益凸显:模型训练越来越容易,但“调不好”和“出故障了不知道怎么修”的情况却频频发生。无论是用 Stable Diffusion 做风格定制&…

作者头像 李华
网站建设 2026/4/23 10:00:16

【C++游戏性能王者之路】:从毫秒级延迟到零卡顿的7步优化法

第一章:C游戏性能优化的核心挑战在现代C游戏开发中,性能优化始终是决定用户体验的关键因素。尽管C提供了对内存和硬件的底层控制能力,但这也带来了更高的复杂性与风险。开发者必须在帧率稳定性、资源占用和代码可维护性之间取得平衡。内存管理…

作者头像 李华
网站建设 2026/4/20 16:19:06

品牌故事持续演绎:跨年度传播内容的连贯性维护

品牌故事持续演绎:跨年度传播内容的连贯性维护 在品牌竞争日益激烈的今天,消费者早已不再满足于碎片化、割裂式的营销信息。他们期待看到一个始终如一、有温度、可感知的品牌人格——无论是三年前的一张海报,还是今年新发布的短视频&#xff…

作者头像 李华