news 2026/3/13 6:27:14

关于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/3/12 6:12:56

数字孪生系统构建:物理世界与虚拟模型的映射

数字孪生系统构建:物理世界与虚拟模型的映射 在智能制造、智慧医疗乃至虚拟偶像日益活跃的今天,如何让一个数字“分身”不仅长得像、说得对,还能实时反映真实个体的状态和行为?这正是数字孪生技术试图回答的核心问题。而随着大模…

作者头像 李华
网站建设 2026/3/13 2:24:21

为什么顶级公司都在用Rust重构C++模块?解密数据交互中的安全性革命

第一章:为什么顶级公司都在用Rust重构C模块?在现代高性能系统开发中,C 长期占据核心地位。然而,随着软件复杂度的上升,内存安全问题、并发控制难度以及维护成本逐渐成为瓶颈。越来越多的科技巨头如 Google、Microsoft …

作者头像 李华
网站建设 2026/3/5 10:59:50

C++程序员必看:AIGC时代下延迟优化的7个致命误区及破解之道

第一章:C AIGC时代延迟优化的挑战与机遇随着人工智能生成内容(AIGC)技术的迅猛发展,C作为高性能计算的核心语言之一,在实时推理、大规模模型部署和边缘计算场景中扮演着关键角色。然而,AIGC对响应延迟提出了…

作者头像 李华
网站建设 2026/3/13 7:34:33

电商平台智能导购:结合用户画像生成个性化推荐语

电商平台智能导购:结合用户画像生成个性化推荐语 在电商平台上,每天有成千上万的商品等待被发现,而用户却常常在琳琅满目的选项中迷失方向。传统的“猜你喜欢”已经不够用了——点击率停滞不前、转化瓶颈频现,背后的问题其实很清晰…

作者头像 李华
网站建设 2026/3/11 12:17:34

【稀缺技术揭秘】:仅限少数团队掌握的C++/Rust双语言数据共享模式

第一章:C与Rust数据共享的背景与挑战在现代系统级编程中,C与Rust的混合使用逐渐成为构建高性能、高安全性软件的重要策略。C拥有庞大的生态系统和成熟的工业级库,而Rust则凭借其内存安全保证和零成本抽象吸引了越来越多开发者。然而&#xff…

作者头像 李华