MyBatis-Plus中提供的各种注解详细说明

 更新时间:2023年11月20日 09:19:22   作者:西瓜游侠  
这篇文章主要介绍了MyBatis-Plus中提供的各种注解详细说明,下面对MyBatis-Plus提供的注解进行整理,本文提供了部分示例代码以方便理解,需要的朋友可以参考下

MyBatis-Plus注解

下面对MyBatis-Plus提供的注解进行整理。

@TableName

用于指定表名,作用在实体类上面。

常用的属性:

value —— 表名

例子:

@TableName("tb_user")
public class UserEntity {
    ...
}

@TableId

用于指定表的主键名。

常用属性:

  • value —— 主键名
  • type —— 主键类型

其中,主键类型type默认值是IdType.NONE,取值有以下几种:

  • IdType.AUTO —— 主键自增,系统分配,不需要手动输入。
  • IdType.NONE —— 未设置主键。
  • IdType.INPUT —— 需要自己设置主键值。
  • IdType.ASSIGN_ID —— 当主键类型是Long、Integer、String时,系统调用IdentifierGenerator.nextId()自动分配,默认是雪花算法。
  • IdType.ASSIGN_UUID —— 分配UUID,主键类型为String,系统调用IdentifierGenerator.nextUUID()方法。

例子:

@TableId(value = "user_id", type = IdType.ASSIGN_ID)
private Long id;

@TableField

用于指定表的非主键字段名。

常用属性:

  • value —— 指定非主键字段名。
  • exist —— 用于指明是否是数据库表中的字段,true是,false不是。
  • fill —— 用于指定字段填充策略。

字段填充策略(一般用于填充创建时间、修改时间等字段)如下:

  • FieldFill.DEFAULT —— 默认不填充。
  • FieldFill.INSERT —— 插入时填充。
  • FieldFill.UPDATE —— 更新时填充。
  • FieldFill.INSERT_UPDATE —— 插入、更新时填充。

注意:需要实现自定义的填充器,字段填充策略才会生效。

例子:

@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;

@Version

用于标记实现乐观锁的表字段。

例子:

@Version
private Integer version;

@EnumValue

只能标记在枚举类的字段上,表示数据库填入的值是枚举类中的哪个字段的值。

例子:

@Data
@TableName("tb_student")
public class Student {
    private Integer id;
    private String name;
    // 在数据库中,grade字段的类型是int,所以需要在GradeEnum中使用@EnumValue注解取值的字段
    private GradeEnum grade;
}

public enum GradeEnum {
    PRIMARY(1, "小学"),
    SECONDORY(2, "中学"),
    HIGH(3, "高中");
    
    @EnumValue
    private int code;
    private String name;
    
    ...
}

@TableLogic

用于标记表示逻辑删除的字段。

使用了这个注解,在调用删除方法的时候并不会真的删除数据,而是更新数据,设置逻辑删除字段的值。

常用属性:

  • value —— 指定逻辑未删除时候的值。
  • delval —— 指定逻辑删除时候的值。

例子:

@TableField("delete_flag")
@TableLogic(value = "0", delval = "-1")
private Integer deleteFlag;

到此这篇关于MyBatis-Plus中提供的各种注解详细说明的文章就介绍到这了,更多相关MyBatis-Plus注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java并发编程死锁定义及如何避免死锁

    java并发编程死锁定义及如何避免死锁

    这篇文章主要为大家介绍了java并发编程中死锁的详细说明及如何避免死锁的方法,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-02-02
  • Java中内核线程理论及实例详解

    Java中内核线程理论及实例详解

    在本篇文章里小编给大家整理了一篇关于Java中内核线程理论及实例详解内容,有兴趣的朋友们可以学习下。
    2021-03-03
  • [Spring MVC]-详解SpringMVC的各种参数绑定方式

    [Spring MVC]-详解SpringMVC的各种参数绑定方式

    本篇文章主要介绍了SpringMVC的各种参数绑定方式 ,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • Spring框架基于AOP实现简单日志管理步骤解析

    Spring框架基于AOP实现简单日志管理步骤解析

    这篇文章主要介绍了Spring框架基于AOP实现简单日志管理步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Linux下java环境配置图文方法

    Linux下java环境配置图文方法

    这篇文章主要介绍了Linux下java环境配置图文方法,需要的朋友可以参考下
    2023-06-06
  • JDK21安装与配置完整图文教程

    JDK21安装与配置完整图文教程

    JDK21版本作为Java平台的未来版本,可能会带来一系列创新和优化,从性能到安全性,再到编程体验和跨平台能力,都是它将要重点关注的领域,这篇文章主要介绍了JDK21安装与配置的相关资料,需要的朋友可以参考下
    2026-02-02
  • JAVA的发展前景如何好不好自学

    JAVA的发展前景如何好不好自学

    这篇文章主要介绍了JAVA的发展前景如何好不好自学,很多朋友想自学java不知道好不好学,能不能学会,今天小编给大家分享一篇教程关于java的发展前景的文章,需要的朋友可以参考下
    2020-06-06
  • SpringMVC拦截器和异常处理器使用示例超详细讲解

    SpringMVC拦截器和异常处理器使用示例超详细讲解

    拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。本文将详细讲讲SpringMVC中拦截器参数及拦截器链配置,感兴趣的可以尝试一下
    2022-09-09
  • 教你在JNA中将本地方法映射到JAVA代码中的示例

    教你在JNA中将本地方法映射到JAVA代码中的示例

    对于JNI来说,我们可以使用native关键字来定义本地方法。那么在JNA中有那些在JAVA代码中定义本地方法的方式呢?对JNA本地方法映射JAVA代码的相关知识感兴趣的朋友一起看看吧
    2022-04-04
  • POI对Excel自定义日期格式的读取(实例代码)

    POI对Excel自定义日期格式的读取(实例代码)

    下面小编就为大家带来一篇POI对Excel自定义日期格式的读取(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论