MybatisPlus 数据库字段使用驼峰命名法时碰到的问题

本文介绍了解决MybatisPlus中因数据库字段名与实体类属性名不一致导致的映射问题的方法。当数据库字段名未使用下划线风格而直接采用驼峰命名时,可通过配置关闭自动驼峰到下划线映射功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如有个实体类:

class User{
	int userId;
}

按照规范,数据库User表里边对应userId的字段名应该为 user_id。
如果数据库的字段名也是userId的话(没有下划线),那么使用MybatisPlus的时候就会碰到映射问题,实际查询的时候默认是查询user_id。

解决办法:

.properties添加一行配置,关闭驼峰到下划线的映射即可

mybatis-plus.configuration.map-underscore-to-camel-case=false
### Spring Boot MyBatis Plus 中文字段处理方法及注意事项 #### 数据库字符集设置 为了确保数据库能够正确存储和读取中文字符,需确认数据库使用的字符编码支持多字节字符。通常推荐使用 `utf8mb4` 编码,该编码可以全面覆盖 Unicode 字符集中的所有字符。 ```sql ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 对于已存在的表结构,同样需要调整其字符集: ```sql ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` [^1] #### JDBC URL 参数配置 在应用程序的 `application.properties` 或者 `application.yml` 文件中定义的数据源连接字符串里加入合适的参数以保障客户端和服务端之间的通信采用一致的字符编码方式。 ```properties spring.datasource.url=jdbc:mysql://localhost:3306/yourdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC ``` 或者 YAML 配置文件形式如下所示: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/yourdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC ``` [^2] #### 实体类属性映射 当实体对象对应着含有汉字名称列名,在编写 JavaBean 类应遵循驼峰命名法转换规则,并利用 `@TableField` 注解指定实际对应的数据库字段名字。 ```java @TableField("用户姓名") private String userName; // 对应 "用户姓名" 列 ``` [^3] #### 日志记录与调试技巧 如果遇到乱码问题,则可以通过开启 SQL 执行日志查看具体语句及其传递过来的内容是否存在问题;另外也可以借助 MySQL 自带命令行工具或者其他图形化管理软件直接查询目标表格验证数据准确性。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值