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

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

总结

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

相关文章

  • Java递归来实现汉诺塔游戏,注释详细

    Java递归来实现汉诺塔游戏,注释详细

    这篇文章介绍了Java递归来实现汉诺塔游戏的方法,文中的代码注释介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • 使用Java接收和处理OpenTelemetry数据的完整指南

    使用Java接收和处理OpenTelemetry数据的完整指南

    在现代分布式系统中,OpenTelemetry 成为了一种常见的标准,用于跟踪和监控应用程序的性能和行为,OTLP是 OpenTelemetry 社区定义的一种数据传输协议,文将介绍如何使用 Java 编写代码来接收和处理 OTLP 数据,需要的朋友可以参考下
    2024-04-04
  • 深入分析Comparable与Comparator及Clonable三个Java接口

    深入分析Comparable与Comparator及Clonable三个Java接口

    接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义,这篇文章主要为大家详细介绍了Java的Comparable,Comparator和Cloneable的接口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-05-05
  • MyBatis插入时获取自增主键方法

    MyBatis插入时获取自增主键方法

    MyBatis 3.2.6插入时候获取自增主键方法有两种,下面以以MySQL5.5为例通过两种方法给大家介绍mybatis获取自增主键的方法,一起看看吧
    2016-11-11
  • 详解maven依赖冲突以及解决方法

    详解maven依赖冲突以及解决方法

    这篇文章主要介绍了maven依赖冲突以及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java编码辅助工具Lombok用法详解

    Java编码辅助工具Lombok用法详解

    这篇文章主要介绍了Java编码辅助工具Lombok用法详解,可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提高编码效率,需要的朋友可以参考下
    2019-06-06
  • SpringBoot根据目录结构自动配置Url前缀方式

    SpringBoot根据目录结构自动配置Url前缀方式

    这篇文章主要介绍了SpringBoot根据目录结构自动配置Url前缀方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java中的数组复制(clone与arraycopy)代码详解

    Java中的数组复制(clone与arraycopy)代码详解

    这篇文章主要介绍了Java中的数组复制(clone与arraycopy)代码详解,本文并未全部介绍数组复制的几种方式,仅对clone和copy的相关内容进行了解析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java输入时如何通过回车(enter)来结束输入

    java输入时如何通过回车(enter)来结束输入

    这篇文章主要介绍了java输入时如何通过回车(enter)来结束输入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • JDBC之PreparedStatement类中预编译的综合应用解析

    JDBC之PreparedStatement类中预编译的综合应用解析

    SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句
    2013-07-07

最新评论