当前位置: 首页 > 知识库问答 >
问题:

java - 如何配置 MyBatis Plus 实现字段名自动转换?

秦俊发
2024-04-16

这里,字段名为什么没有自动转换成下划线呢,image.png
这里是mybatis_plus不会自动转换呢,还是我配置错了?
如果这种情况不会自动转换,那么自动转换使用在什么情况下呢?image.png

共有2个答案

充煌
2024-04-16

自动转换发生在pojo,即java类和数据库字段之间。
请尝试使用LambdaQuery

lambdaQuery().select(User::getUserName, User::getAge)
强化
2024-04-16

在 MyBatis Plus 中,字段名的自动转换通常用于处理数据库字段命名和 Java 对象属性命名之间的差异。默认情况下,MyBatis Plus 会尝试将 Java 对象的驼峰命名方式转换为数据库中的下划线命名方式,反之亦然。但是,这种自动转换并不是在所有情况下都会发生,它依赖于一些配置和条件。

首先,请确保你的 MyBatis Plus 版本支持字段名的自动转换功能。较旧的版本可能不支持这一特性。

其次,检查你的 MyBatis Plus 配置。在 MyBatis Plus 的配置类(通常是一个带有 @Configuration 注解的类)中,确保你启用了自动转换功能。这通常是通过设置 GlobalConfigdbColumnUnderlineStrategy 属性来实现的。例如:

@Configurationpublic class MybatisPlusConfig {    @Bean    public GlobalConfig globalConfig() {        GlobalConfig globalConfig = new GlobalConfig();        globalConfig.setDbColumnUnderlineStrategy(DbColumnUnderlineStrategy.ALWAYS);        return globalConfig;    }}

在这个例子中,DbColumnUnderlineStrategy.ALWAYS 表示无论数据库字段名是什么风格,都会进行自动转换。你也可以选择其他策略,比如 DbColumnUnderlineStrategy.NON_UNDERLINE_TO_UNDERLINE,这表示只有当数据库字段名不是下划线风格时才会进行转换。

如果你已经正确配置了 MyBatis Plus,但字段名仍然没有被自动转换,那么可能是因为以下原因:

  1. 数据库字段名本身就是驼峰命名方式,与 Java 对象属性名一致,因此不需要转换。
  2. 你可能使用了自定义的 SQL 查询或映射语句,在这些情况下,MyBatis Plus 可能不会自动转换字段名。
  3. 某些情况下,你可能需要在实体类上使用 @TableField 注解来显式指定数据库字段名和 Java 属性名之间的映射关系。

至于你提到的图片,由于我无法直接查看它们,我无法给出针对那些图片的具体解答。如果图片中包含了代码片段或错误信息,请将它们以文本形式提供给我,这样我才能帮助你解决问题。

总之,要确保 MyBatis Plus 的字段名自动转换功能正常工作,你需要检查你的 MyBatis Plus 版本、配置以及可能的自定义 SQL 语句或映射关系。如果问题仍然存在,请提供更多信息以便我能提供更准确的帮助。

 类似资料:
  • 本文向大家介绍SpringBoot配置mybatis驼峰命名规则自动转换的实现,包括了SpringBoot配置mybatis驼峰命名规则自动转换的实现的使用技巧和注意事项,需要的朋友参考一下 一、简述 mybatis驼峰式命名规则自动转换: 使用前提:数据库表设计按照规范“字段名中各单词使用下划线"_"划分”; 使用好处:省去mapper.xml文件中繁琐编写表字段列表与表实体类属性的映射关系,即

  • 本文向大家介绍MyBatisPlus 自定义sql语句的实现,包括了MyBatisPlus 自定义sql语句的实现的使用技巧和注意事项,需要的朋友参考一下 一、引言 Good Good Study,Day Day Up MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧。 二、配置 自定义的sql当然是写在XML文件中的啦,那么首

  • 问题内容: 当前,我们有一个粗略的机制可以将数字转换为单词(例如,使用一些静态数组),并且基于将数字转换为英文文本的大小。但是我们遇到了巨大的数字问题。 我可以为此目的使用的任何数学库中都有易于使用的函数吗? 问题答案: 这是代码,我认为SE中没有任何方法。 它基本上将数字转换为字符串并解析String并将其与权重相关联 例如 被视为千位,由于位置而映射到千位 这是来自网站的代码: English

  • 我在运行下面给出的代码时遇到了一些问题。我得到以下异常。当我尝试[CrudRepository for Spring Data][1]的示例代码时。 我有一个接口: VO类: 上下文初始化过程中遇到异常-取消刷新尝试:org.springframework.beans.factory.unsatisfieddependencyexception:创建名为“hello cntrl”的bean时出错:

  • 本文向大家介绍java实现CSV 字段分割,包括了java实现CSV 字段分割的使用技巧和注意事项,需要的朋友参考一下 支持引号嵌套,逗号分割 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 我有一个带有两个表的SQL Server 2008数据库。第一个表称为Department。第二个表称为票证。这两个表的定义如下: 我正在尝试找出一种动态更新Department.TotalTickets值的方法。当添加或删除工单时,我想自动增加或减少TotalTickets的值。有人可以告诉我在SQL Server 2008上执行此操作的最佳方法吗? 谢谢 问题答案: 有多种方法可以