mybatisplus自动把字段变成小写
时间: 2025-06-30 20:17:02 浏览: 13
### MyBatis Plus 字段自动转小写解决方案
在使用 MyBatis Plus 时,如果遇到字段名称从数据库列名自动转换为小写的问题,可以通过以下几种方式解决:
#### 1. 配置全局策略
MyBatis Plus 提供了 `GlobalConfig` 全局配置类,可以设置字段的命名规则。通过调整字段策略,避免字段名称被自动转换为小写。
```java
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.spring.MybatisPlusConfig;
@Configuration
public class MyBatisPlusConfig {
@Bean
public GlobalConfig globalConfig() {
GlobalConfig config = new GlobalConfig();
GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
dbConfig.setTableFieldNaming(NamingStrategy.no_change); // 不改变字段名
config.setDbConfig(dbConfig);
return config;
}
}
```
上述代码中设置了 `NamingStrategy.no_change`,确保字段名称不会被自动转换[^2]。
#### 2. 使用注解手动映射
如果全局配置无法满足需求,可以在实体类中使用 `@TableField` 注解手动指定数据库列名与字段的映射关系。
```java
import com.baomidou.mybatisplus.annotation.TableField;
public class CityPO {
private Integer id;
@TableField("city_id")
private Integer cityId;
@TableField("city_name")
private String cityName;
@TableField("city_en_name")
private String cityEnName;
}
```
通过这种方式,即使字段名称被自动转换为小写,也可以通过注解明确指定列名映射[^3]。
#### 3. 调整 SQL 语句中的字段名称
在 MyBatis 的 XML 映射文件中,可以直接指定返回结果的字段名称,避免字段名称被自动转换。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.CityMapper">
<select id="selectCity" resultType="po.CityPO">
SELECT
id AS id,
city_id AS cityId,
city_name AS cityName,
city_en_name AS cityEnName
FROM SU_City
WHERE id = #{id}
</select>
</mapper>
```
通过在 SQL 语句中使用 `AS` 关键字重新定义字段名称,可以确保返回的结果字段与实体类字段名称一致[^4]。
#### 4. 检查数据库驱动配置
某些数据库驱动可能会对字段名称进行默认的小写转换。检查数据库连接配置,确保没有启用不必要的字段名称转换逻辑。
例如,在 MySQL 数据库连接字符串中,可以添加以下参数:
```properties
useInformationSchema=true&serverTimezone=UTC&useSSL=false&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&lowerCaseTableNames=0
```
其中 `lowerCaseTableNames=0` 参数可以关闭 MySQL 自动将表名和字段名称转换为小写的特性[^5]。
### 注意事项
- 如果使用的是 MyBatis Plus 默认的字段映射规则(如驼峰命名),需要确保数据库列名与实体类字段名称的映射规则一致。
- 在高并发场景下,建议优先使用注解方式手动映射字段,以减少因字段名称不匹配导致的潜在问题。
阅读全文
相关推荐


















