MyBatis-plus与数据库字段的映射方式

 更新时间:2025年11月05日 08:42:45   作者:张 先生  
MyBatis-plus默认开启驼峰命名规则映射,即驼峰转为下划线,如果数据库字段也是驼峰命名,会导致映射错误,解决方法有两种:使用@TableField注解指定数据库字段名或关闭驼峰命名规则映射,数据库设计规范应优先使用蛇形命名法,即全部小写字母并用下划线连接

MyBatis-plus实体和数据库字段的映射

首先MyBatis-plus默认开启自动驼峰命名规则映射,其实就是驼峰转为下划线,例如:

我们的实体字段为errorMsg,遵循小驼峰命名,MyBatis-plus生成sql语句时会默认转为error_msg

生成的sql如下:

INSERT INTO log_history ( id, code, error_msg, time ) VALUES ( ?, ?, ?, ? )

很明显MyBatis-plus默认给驼峰命名转成下划线了;

此时如果我们数据库字段是驼峰命名就会报错,那么如何解决这种问题呢?

方案一

使用MyBatis-plus自带注解,在实体类字段名称上使用@TableField(value = “errorMsg”)这个注解,value里面对应的是数据库的具体字段名称

方案二

关闭MyBatis-plus的驼峰命名规则映射,在yml配置文件中添加如下配置

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false # 禁止驼峰命名时自动转为下划线

这样的话MyBatis-plus就不会帮我们做自动映射了,但是这样的话会影响整个项目的,用的时候需要注意一下

还有一点需要注意!

数据库设计规范优先使用蛇形命名法,就是带下划线的

数据库表的字段名应该全部用小写字母命名,禁止出现大写,如果有大写需要改为小写并用下划线连接,

  • 正确示例:error_massage
  • 错误示例:errorMassage

所以,MyBatis-plus默认为驼峰转蛇形命名(也就是下划线)是正确的,只是并不是所有公司的数据库表的设计都是规范的,比如说我们现在就是驼峰。。。

并不是所有公司的数据库表的设计都是规范的,比如说我们现在就是驼峰。。。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • idea 与 maven 使用过程中遇到的问题及解决方案

    idea 与 maven 使用过程中遇到的问题及解决方案

    最近将IDEA 升级到 IntelliJ IDEA 2021.3.2,在将maven项目导入IDEA后,maven build时报异常,这个问题是IntelliJ IDEA 2021.3.2 不兼容导致的,下面小编给大家带来了idea 与 maven 使用过程中遇到的问题及解决方案,感兴趣的朋友一起看看吧
    2022-05-05
  • jvm分析工具/适用场景/最佳实践过程

    jvm分析工具/适用场景/最佳实践过程

    本文系统介绍JVM分析工具的分类与适用场景,涵盖CPU监控、内存泄漏分析、FullGC排查、线程死锁检测及方法级性能优化,提供工具选择、最佳实践和避坑指南,助力高效解决Java应用性能与稳定性问题
    2025-07-07
  • 基于SpringBoot接口+Redis解决用户重复提交问题

    基于SpringBoot接口+Redis解决用户重复提交问题

    当网络延迟的情况下用户多次点击submit按钮导致表单重复提交,用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交也会出现用户重复提交,办法有很多,我这里只说一种,利用Redis的set方法搞定,需要的朋友可以参考下
    2023-10-10
  • MyBatis配置文件解析与MyBatis实例演示

    MyBatis配置文件解析与MyBatis实例演示

    这篇文章主要介绍了MyBatis配置文件解析与MyBatis实例演示以及怎样编译安装MyBatis,需要的朋友可以参考下
    2022-04-04
  • java并发之ArrayBlockingQueue详细介绍

    java并发之ArrayBlockingQueue详细介绍

    这篇文章主要介绍了java并发之ArrayBlockingQueue详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05
  • SpringBoot集成OAuth2.0的实现示例

    SpringBoot集成OAuth2.0的实现示例

    OAuth2.0是安全授权协议,通过访问令牌替代密码,保障用户数据安全,适用于社交登录、第三方数据访问等场景,下面就来介绍一下SpringBoot集成OAuth2.0,感兴趣的可以了解一下
    2025-06-06
  • springboot项目mysql-connector-java默认版本如何查看

    springboot项目mysql-connector-java默认版本如何查看

    这篇文章主要介绍了springboot项目mysql-connector-java默认版本如何查看问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java常见的3种文件上传方法和速度对比

    Java常见的3种文件上传方法和速度对比

    这篇文章介绍了Java常见的3种文件上传方法和速度对比,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Java的jstack命令使用示例详解

    Java的jstack命令使用示例详解

    jstack 命令非常的简单,我们可以通过 jstack -h 或者 jstack -help 命令查看它的用法详情,今天通过本文重点给大家介绍Java的jstack命令使用,感兴趣的朋友一起看看吧
    2022-03-03
  • Java中HashTable和HashMap的区别_动力节点Java学院整理

    Java中HashTable和HashMap的区别_动力节点Java学院整理

    HashTable和HashMap主要的区别有:线程安全性,同步(synchronization),以及速度。接下来通过本文给大家简单介绍下HashTable和HashMap的区别,需要的的朋友参考下吧
    2017-04-04

最新评论