解决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日

相关文章

  • java中的编码转换过程(以utf8和gbk为例)

    Java是一门跨平台的编程语言,支持多种编码格式,如UTF-8、GBK、GB2312等。由于不同的环境可能使用不同的编码格式,因此在Java程序中需要对字符串进行编码转换。下面将以UTF-8和GBK为例,详细讲解Java中的编码转换过程。 1. 字符串编码的表示方式 在Java程序中,字符串编码有两种表示方式,即Java内部编码和字节数组。 Java内部编码…

    Java 2023年5月20日
    00
  • Java C++ 题解leetcode857雇佣K名工人最低成本vector pair

    题目描述: 给定两个长度为N的整数数组,W数组表示每个工人的工资,Q数组表示每个工人完成工作的质量。现在要雇佣K名工人去完成一些工作,每个工人只能完成一项工作,工人完成一项工作的质量就是该工作质量的总和,而这些工作的总成本是所有工人的工资总和。求最小的总成本。 思路分析: 先将工资按比例排序,使用最小堆,维护当前最小的K个工资,同时记录下当前最小K个工资的序…

    Java 2023年5月20日
    00
  • JSP教程(四)-JSP Actions的使用

    下面是“JSP教程(四)-JSP Actions的使用”的完整攻略。 一、JSP Actions概述 JSP Actions是一种特殊的标记,它提供了一些特殊的操作和功能,可以让我们更加灵活地控制JSP页面的生成过程。JSP Actions可以分为以下三类: 动作标签(Action Tags) JSP指令(Directive) 注释标签(Comment Ta…

    Java 2023年6月15日
    00
  • Java的Struts框架报错“ForwardConfigNotFoundException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ForwardConfigNotFoundException”错误。这个错误通常由以下原因之一起: 配置错误:如果配置文件中没有正确配置Forward,则可能会出现此。在这种情况下,需要检查配置文件以解决此问题。 Forward名称错误:如果Forward名称不正确,则可能会出现此。在这种情况下,需要检查For…

    Java 2023年5月5日
    00
  • SpringBoot快速配置数据源的方法

    SpringBoot快速配置数据源的方法 在SpringBoot中,可以非常简单快速地配置数据源,一般使用Spring Boot Starter来简化开发过程。 步骤1:添加依赖 在pom.xml中添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId&gt…

    Java 2023年6月2日
    00
  • springboot注入servlet的方法

    下面是详细讲解Spring Boot注入Servlet的方法的完整攻略。 1. 添加Servlet API依赖 在Spring Boot中使用Servlet必须要先添加Servlet API依赖。可以在pom.xml文件中添加以下依赖项: <dependency> <groupId>javax.servlet</groupId&…

    Java 2023年5月19日
    00
  • 浅谈SpringMVC国际化支持

    接下来我将详细讲解“浅谈SpringMVC国际化支持”的完整攻略,包括以下内容: 什么是SpringMVC国际化支持 如何使用SpringMVC国际化支持 示例说明:如何在SpringMVC中实现国际化 什么是SpringMVC国际化支持 SpringMVC国际化支持是一种用于支持跨地区和语言的Web应用程序的技术,它可以将Web应用程序的文本信息本地化,以…

    Java 2023年5月16日
    00
  • java异步调用的4种实现方法

    Java异步调用的4种实现方法 1. 回调函数 回调函数是一种异步调用的解决方案之一,在Java中可以通过接口来实现回调函数。 具体实现方式是定义一个接口,在异步任务完成后调用接口的方法,将需要传递的数据传递给回调函数,执行回调函数完成后续逻辑处理。 如下是一个简单的示例: public interface Callback{ void onComplete…

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