MyBatis 默认支持下划线转驼峰映射,需开启 mapUnderscoreToCamelCase=true 配置,实体类属性须为标准驼峰命名(如 userName),SQL 显式别名会覆盖驼峰映射,Spring Boot 中可通过 application.yml 快速配置。

MyBatis 默认支持下划线命名(如 user_name)到驼峰命名(如 userName)的自动映射,但需正确配置开启,否则字段无法绑定到 Java 属性。
开启全局驼峰映射开关
在 MyBatis 配置文件(如 mybatis-config.xml)中,添加以下设置:
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
该配置会让 MyBatis 在自动映射(resultMap 未显式定义时)和自动结果集映射中,将数据库列名中的下划线转为驼峰格式,匹配 Java Bean 的属性名。
确保实体类属性命名规范
Java 实体类属性必须是标准驼峰命名,例如:
立即学习“Java免费学习笔记(深入)”;
-
userName← 对应数据库列user_name -
createTime← 对应create_time -
orderStatus← 对应order_status
若属性写成 username 或 USER_NAME,则无法匹配,即使开启驼峰也不会生效。
注意 SQL 别名覆盖规则
如果 SQL 中使用了 AS 显式别名(如 SELECT user_name AS userName),MyBatis 会优先按别名匹配属性名,此时驼峰转换不生效;但若别名是下划线形式(如 AS user_name),仍会触发驼峰映射。
建议:在简单查询中尽量不加 AS,交由 MyBatis 自动处理;复杂场景(如连表、计算字段)可配合 @Results 或 <resultMap> 精确控制。
Spring Boot 中的快捷配置
使用 Spring Boot + MyBatis-Plus 或原生 MyBatis Starter 时,可在 application.yml 中直接配置:
mybatis:
configuration:
map-underscore-to-camel-case: true
或者用 properties 格式:
mybatis.configuration.map-underscore-to-camel-case=true
无需修改 XML 配置文件,更简洁可靠。
不复杂但容易忽略——关键就是打开开关 + 命名对齐 + 避免别名干扰。


















