mybatis plus常用注解的具体使用

下面是关于MyBatis Plus常用注解的具体使用攻略。

简介

MyBatis Plus是一个开源的基于MyBatis的ORM框架,可以用于快速的进行Java Web应用的开发。MyBatis Plus提供了很多方便的注解,用于简化SQL语句编写和提高开发效率。

常用注解

@TableName

@TableName 注解用于标识当前实体对应的表名。如果实体名称与表名不同,可以使用此注解指定表名,否则不需要使用此注解。

@TableName("user_info")
public class User {
    private Long id;
    private String name;
    private Integer age;
    //省略getters and setters方法
}

@TableId

@TableId 注解用于标识当前实体对应的主键字段。如果实体类中只有一个主键字段,可以不需要使用此注解;如果有多个主键字段,则需要使用此注解来指定主键字段。

public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    //省略getters and setters方法
}

@TableField

@TableField 注解用于标识当前字段对应的表字段。如果实体类中字段名与表字段名相同,可以不需要使用此注解;否则需要使用此注解指定表字段名。

public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("user_name")
    private String name;
    private Integer age;
    //省略getters and setters方法
}

@EnumValue

@EnumValue 注解用于标识当前字段对应的枚举值。如果实体类中字段类型是枚举类型,可以使用此注解指定枚举的值。

public enum Gender {
    Male(1, "男"),
    Female(2, "女");
    @EnumValue
    private final int value;
    private final String desc;
    //省略构造方法和getters方法
}
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private Gender gender;
    //省略getters and setters方法
}

@SqlParser

@SqlParser 注解用于标识当前方法中的SQL语句使用了自定义的SQL解析器。如果需要自定义SQL解析器,可以使用此注解标识当前方法中需要使用自定义的SQL解析器。

public interface UserMapper extends BaseMapper<User> {
    @SqlParser(handler = MySqlParser.class)
    @Select("select * from user where id = #{id}")
    User getById(@Param("id") Long id);
}

示例说明

示例1:使用@TableName注解

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@TableName("book_info")
public class Book {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private String author;
}

public interface BookMapper extends BaseMapper<Book> {
}

在实体类Book上使用@TableName注解标识表名为book_info,然后在BookMapper中继承BaseMapper,即可直接使用MyBatis Plus提供的通用CRUD方法。

示例2:使用@EnumValue注解

public enum Status {
    RUNNING(1, "运行中"),
    STOPPED(2, "已停止"),
    UNKNOWN(0, "未知状态");
    @EnumValue
    private int value;
    private String desc;

    Status(int value, String desc) {
        this.value = value;
        this.desc = desc;
    }
}

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@TableName("server_info")
public class Server {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private String url;
    private Status status;
}

public interface ServerMapper extends BaseMapper<Server> {
}

在实体类Server中使用@EnumValue注解标识status字段对应的枚举值,然后在ServerMapper中继承BaseMapper,即可直接使用MyBatis Plus提供的通用CRUD方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis plus常用注解的具体使用 - Python技术站

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

相关文章

  • 详解C++中的inline用法

    关于C++中的inline用法,我将给您详细讲解一下。本攻略包含以下内容: 什么是inline inline的使用方法 inline的使用场景 两个示例说明 1. 什么是inline inline 是C++中的一个关键字,表示内联函数。它是一种可以提高程序运行时性能的优化手段。 简而言之,在C++中,编译器一般会将函数调用转换为栈帧的操作,而使用 inlin…

    C 2023年5月23日
    00
  • C语言中bool变量的深入理解

    下面我来详细讲解“C语言中bool变量的深入理解”: 什么是bool变量? bool变量(布尔变量)是C语言中的一种数据类型,它的取值只有两个:true或false,用于存储逻辑值。 bool变量的定义和声明 在C语言中,使用标准库头文件stdbool.h来定义和声明bool变量。在使用布尔变量之前,必须先声明它们。例如: #include <stdb…

    C 2023年5月23日
    00
  • vscode+qt5+cmake编译调试过程解析

    vscode+qt5+cmake编译调试过程解析 在本篇文章中,我们将给出一个完整的 vscode+qt5+cmake 的编译调试攻略,希望能够帮助大家更好地开发 Qt5 应用程序。 准备工作 在开始之前,我们需要准备以下环境: Visual Studio Code CMake Qt5 其中,我们需要确保 CMake 和 Qt5 已经正确地安装好了。如果您尚…

    C 2023年5月23日
    00
  • Linux C 后台服务程序单进程控制的实现

    实现 Linux C 后台服务程序单进程控制的攻略,主要包括以下几个步骤: 创建守护进程 首先,我们需要编写一个程序,将其作为守护进程来运行。守护进程的作用是在后台运行,独立于用户的终端,并拥有自己的会话和进程组。我们需要遵循以下步骤来创建守护进程: 1)fork 一个子进程。 2)在子进程中调用 setsid 函数创建新会话。 3)再次 fork 一个子进…

    C 2023年5月23日
    00
  • 小米4c怎么样?小米4c搭载骁龙808和Type-C

    当谈到小米4c时,我们需要关注它的配置和性能。小米4c主打设计良好且价格亲民的特点,它的主要优势在于骁龙808处理器和Type-C接口。 小米4c搭载骁龙808处理器 小米4c搭载了骁龙808处理器,它是高通推出的一款六核心处理器,其中两个大核心时钟频率高达1.8GHz,剩下的四个小核心时钟频率为1.4GHz。 骁龙808处理器采用了Adreno 418 G…

    C 2023年5月23日
    00
  • C语言快速幂取模算法小结

    C语言快速幂取模算法小结 快速幂算法是用来加速计算 a^n 的算法,它可以使计算复杂度从O(n)降为O(logn),因此在需要对 a^n 进行大量计算时非常有用。而在取模运算中,快速幂算法同样适用,因为我们可以在计算时对中间结果进行模运算的操作,这样可以避免数值溢出。 算法说明 快速幂取模算法的实现中主要有以下几个步骤: 如果n等于0,直接返回1。 如果n为…

    C 2023年5月23日
    00
  • C语言求解最长公共子字符串问题及相关的算法分析

    C语言求解最长公共子字符串问题及相关的算法分析 简介 在文本处理中,求解最长公共子字符串问题是一个普遍的、重要的问题。该问题描述如下:给定两个字符串s1和s2,求它们的最长公共子字符串,即在两个字符串中都出现过的最长的子串。 算法分析 在求解最长公共子字符串问题中,有多种不同的算法,这里介绍两种常用的算法:暴力枚举和动态规划。 暴力枚举算法 暴力枚举算法是最…

    C 2023年5月22日
    00
  • C语言中的递归,你真的懂了吗?

    C语言中的递归,你真的懂了吗? 递归是指一个函数不断地调用自己来实现某种功能,通常递归函数都包含一个或多个条件语句,作为递归结束的判断条件。对于初学者来说,递归常常是比较难理解和掌握的一种编程思想。本篇文章将详细讲解如何理解和使用C语言中的递归。 递归的基本原理 递归的基本原理非常简单:将原问题分解成一个或者多个规模较小但是可以解决的子问题,并且将小问题的解…

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