mybatis-plus踩坑之下划线驼峰转换方式

 更新时间:2025年08月16日 09:56:26   作者:Echoo华地  
MyBatis-Plus默认驼峰转下划线导致实体字段匹配失败,关闭该功能后需手动配置映射,建议避免字段使用下划线,若必须则可通过注解、重写toString或调整字段名解决

问题:对象中包含下划线的字段儿查询不出来

mybatis-plus中,默认开启了下滑线-驼峰转换

会把数据库字段中的下划线自动转换成驼峰形式,然后去匹配实体类对象的字段

online_num -> onlineNum

如果在一个实体类中存在一个带下划线的字段,查询出来为null

 private Integer online_num;

即使用了@TableField()注解去指定映射关系,查询结果也为null

 @TableField("online_num")
 private Integer online_num;

问题就是出现在了驼峰转换这里,因为已经指明了映射关系,所以把驼峰转换关掉就行:

  • yml:
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false
  • properties:
mybatis-plus.configuration.map-underscore-to-camel-case=false

但是这里有个问题,你关了自动驼峰转换,所有字段都要通过@TableField()注解去指定映射关系或者在mapper.xml中指定映射关系,这样增加了很多工作量。

所以非必要情况下类字段还是不要用_去命名字段,省得麻烦。

实在不行,如果一定要用下划线字段,

看看具体的原因是什么

  • ①如果是序列化或者反序列话需要的话,可以用@JsonProperty和@JsonAlias来解决
  • ②如果是toString需要,那就重写一下Object的toString方法
  • ③其他情况的话,可以加一个字段比如a_b,就加一个aB字段,然后手写一下a_b字段对应的getter,setter,使它们指向aB字段,如果不想转字段就转对象,查询用一个对象,然后对业务一个对象,查询出来后就转成业务对象,技巧还是很多滴~~

总结

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

相关文章

  • java中static的用法及注意点

    java中static的用法及注意点

    在本篇文章里小编给大家整理的是一篇关于java中static的用法及注意点,有兴趣的朋友们可以学习下。
    2021-03-03
  • Java之Springcloud Feign组件详解

    Java之Springcloud Feign组件详解

    这篇文章主要介绍了Java之Springcloud Feign组件详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 详解JDK中ExecutorService与Callable和Future对线程的支持

    详解JDK中ExecutorService与Callable和Future对线程的支持

    这篇文章主要介绍了详解JDK中ExecutorService与Callable和Future对线程的支持的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • ConcurrentHashMap原理及使用详解

    ConcurrentHashMap原理及使用详解

    ConcurrentHashMap是Java中的一种线程安全的哈希表实现,它提供了与Hashtable和HashMap类似的API,是一个高效且可靠的多线程环境下的哈希表实现,非常适合在并发场景中使用,本文就简单介绍一下ConcurrentHashMap原理及使用,需要的朋友可以参考下
    2023-06-06
  • AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理

    AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理

    这篇文章主要介绍了为大家AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • SpringBoot 2.x 接入非标准SSE格式大模型流式响应的实战解决方案

    SpringBoot 2.x 接入非标准SSE格式大模型流式响应的实战解决方案

    本文介绍了在SpringBoot2.7.3环境中接入非标准SSE格式大模型流式响应的实战解决方案,通过自定义实现,解决了大模型返回数据格式不符合标准SSE规范的问题,关键步骤包括引入Gradle依赖、配置WebClient、处理粘包、格式兼容和双重过滤机制,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Java实现可视化走迷宫小游戏的示例代码

    Java实现可视化走迷宫小游戏的示例代码

    这篇文章主要介绍了Java如何实现可视化走迷宫小游戏。本程序适用于java程序员巩固类与对象、文件读取、事件响应、awt包中各种工具的相关概念以及对逻辑能力的锻炼,需要的可以参考一下
    2022-11-11
  • mybatis plus动态数据源切换及查询过程浅析

    mybatis plus动态数据源切换及查询过程浅析

    这篇文章主要介绍了mybatis plus动态数据源切换及查询过程浅析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Maven中的SnapShot版本和正式版本的区别

    Maven中的SnapShot版本和正式版本的区别

    在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,本文详细的介绍了SnapShot版本和正式版本的区别,感兴趣的可以了解一下
    2021-06-06
  • Java处理XSS漏洞的四种方法小结

    Java处理XSS漏洞的四种方法小结

    本文主要介绍了Java处理XSS漏洞的四种方法小结,包含使用HTML实体编码、使用内容安全策略(CSP)、使用框架内置的XSS防护和自定义过滤器等方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论