解决mybatis plus 驼峰式命名规则问题

当我们使用 MyBatis-Plus 进行开发时,如果数据库中的表和列采用了下划线命名法,则需要搭配驼峰式命名法进行开发,这个过程中就需要解决 MyBatis-Plus 驼峰式命名规则问题。

以下是解决 MyBatis-Plus 驼峰式命名规则问题的完整攻略:

1. 配置文件中开启驼峰命名法

在 MyBatis-Plus 中,我们可以通过在配置文件中开启驼峰命名法来解决驼峰式命名规则问题。

# 配置文件
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true

map-underscore-to-camel-case 参数为 true 时,会开启数据库下划线方式和 Java 驼峰方式之间的转换。

2. 在实体中使用 @TableField 注解

如果不想在全局配置文件中开启驼峰命名法,也可以通过在实体类中使用 @TableField 注解来解决这个问题。我们可以在 @TableField 注解中使用 value 属性来指定数据库字段名称,而不是使用默认的驼峰式命名规则。

@Data
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField(value = "user_name")
    private String userName;

    @TableField(value = "password")
    private String password;

    private Integer age;

    private String email;
}

通过在 @TableField 注解中指定 value 属性,我们可以将数据库字段名称和实体类属性名称进行映射,从而解决 MyBatis-Plus 驼峰式命名规则问题。

示例

以下是两个示例,演示如何使用 MyBatis-Plus 解决驼峰式命名规则问题:

示例 1

数据库表的名称为 user_info,列名为 user_namecreate_time,在 MyBatis-Plus 的配置文件中开启驼峰命名法:

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true

定义实体类 User:

@Data
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    private String userName;

    private LocalDateTime createTime;

}

UserMapper 接口:

public interface UserMapper extends BaseMapper<User> {

}

执行查询:

@Test
void testSelect() {
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("user_name", "Tom");

    List<User> userList = userMapper.selectList(queryWrapper);
    for (User user : userList) {
        System.out.println(user);
    }
}

在执行查询时,我们可以看到,MyBatis-Plus 自动将数据库表和列名转换为了驼峰式命名规则,实现了自动映射。

示例 2

数据库表的名称为 user_info,列名为 user_namecreate_time,在实体类中使用 @TableField 注解指定数据库字段名称:

@Data
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField(value = "user_name")
    private String userName;

    @TableField(value = "create_time")
    private LocalDateTime createTime;

}

执行查询:

@Test
void testSelect() {
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("user_name", "Tom");

    List<User> userList = userMapper.selectList(queryWrapper);
    for (User user : userList) {
        System.out.println(user);
    }
}

通过在实体类中使用 @TableField 注解,我们可以指定数据库字段名称,从而解决驼峰式命名规则问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决mybatis plus 驼峰式命名规则问题 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 类卸载的触发条件是什么?

    类卸载是指在JVM中,当一个类不再被引用的时候,就会被JVM卸载,释放其占用的内存资源。类卸载的触发条件与垃圾回收机制密切相关。 在JVM中,当一个类不再被引用时,会进入“可卸载状态”,但仅仅处于“可卸载状态”是不够的,还需要满足以下两个条件才能被卸载: 该类的所有实例都已经被回收,不存在任何活动的类实例; 加载该类的ClassLoader已经被回收。 只有…

    Java 2023年5月11日
    00
  • java的Hibernate框架报错“TransientObjectException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“TransientObjectException”错误。这个错误通常是由于以下原因之一引起的: 持久化对象中包含了非持久化对象:如果您的持久化对象中包含了非持久化对象,则可能会出现此错误。在这种情况下,需要确保您的持久化对象中只包含持久化对象。 非持久化对象尝试与持久化对象建立关联:如果您的非持久化对象尝试与持久化…

    Java 2023年5月4日
    00
  • Java 生成随机字符串数组的实例详解

    Java 生成随机字符串数组的实例详解 介绍 在Java中,我们经常需要使用随机字符串数组来做一些初始化操作,这时就需要用到生成随机字符串数组的方法了。本文将介绍Java生成随机字符串数组的详细攻略。 实现步骤 生成随机字符串数组的步骤如下: 定义生成的字符串的长度 定义生成的字符串数组的长度 生成随机字符串 将随机字符串添加到字符串数组中 返回字符串数组 …

    Java 2023年5月26日
    00
  • maven安装与环境配置图文教程

    下面是详细的“Maven安装与环境配置图文教程”的完整攻略。 环境要求 在安装 Maven 之前,首先需要满足以下环境要求: Java JDK:Maven 是用 Java 语言开发的,所以安装 Maven 之前必须先安装 Java JDK。可以从 Oracle 官网 下载和安装最新版的 Java JDK。 Maven 安装包:从 Maven 官网 下载最新的…

    Java 2023年5月20日
    00
  • Java Tomcat 启动闪退问题解决集

    Java Tomcat 启动闪退问题解决集 问题描述 在使用Java Tomcat时,有时会出现启动后闪退的问题。这个问题十分棘手,让人头疼。本文将从几个方面介绍如何解决这个问题。 解决方法 方法一:配置config文件 步骤1:打开Tomcat的config文件夹 打开Tomcat的安装目录下的conf文件夹,找到打开server.xml文件。 步骤2:修…

    Java 2023年6月2日
    00
  • spring注解 @PropertySource配置数据源全流程

    下面是spring注解 @PropertySource配置数据源全流程的完整攻略: 1. 定义配置文件 在项目中的某个位置(如 src/main/resources 目录下)创建一个名为 application.properties 的文件,用于存放配置信息。例如: jdbc.username=admin jdbc.password=123456 jdbc.…

    Java 2023年5月20日
    00
  • Java数据结构之队列的简单定义与使用方法

    Java数据结构之队列的简单定义与使用方法 什么是队列? 队列是一种特殊的线性表,它支持在表的前端(入队)插入元素,同时支持在表的后端(出队)删除元素。队列是先进先出(FIFO)的数据结构,即其和人们排队相一致,先来先服务。 在Java中,队列在java.util包中实现,具体类为java.util.Queue接口,它是一种典型的集合,继承了java.uti…

    Java 2023年5月26日
    00
  • Java解析xml文件和json转换的方法(DOM4j解析)

    Java解析XML文件和JSON转换的方法(DOM4j解析) 在Java编程中,经常需要解析XML文件或者将JSON字符串转换成Java对象。针对这个问题,我们可以使用DOM4j解析库来处理。下面是详细的使用方法: 解析XML文件 引入依赖库 首先,需要在项目中引入dom4j和jaxen这两个依赖库。在Maven项目中,可以在项目的pom.xml文件中添加以…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部