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接口异步调用,下面我们来一起学习一下吧
    2019-05-05
  • Java对象初始化顺序的使用

    Java对象初始化顺序的使用

    本篇文章介绍了,Java对象初始化顺序的使用。需要的朋友参考下
    2013-04-04
  • Java基础之方法重写详解

    Java基础之方法重写详解

    这篇文章主要介绍了Java基础之方法重写详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Spring Cloud Gateway重试机制原理解析

    Spring Cloud Gateway重试机制原理解析

    这篇文章主要介绍了Spring Cloud Gateway重试机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • RestTemplate实现发送带headers的GET请求

    RestTemplate实现发送带headers的GET请求

    这篇文章主要介绍了RestTemplate实现发送带headers的GET请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 使用Backoff策略提高HttpClient连接管理的效率

    使用Backoff策略提高HttpClient连接管理的效率

    这篇文章主要为大家介绍了Backoff策略提高HttpClient连接管理的效率使用解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • java利用DFA算法实现敏感词过滤功能

    java利用DFA算法实现敏感词过滤功能

    在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解。下面这篇文章主要给大家介绍了关于java利用DFA算法实现敏感词过滤功能的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • Mybatis下动态sql中##和$$的区别讲解

    Mybatis下动态sql中##和$$的区别讲解

    今天小编就为大家分享一篇关于Mybatis下动态sql中##和$$的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Mybatis注解方式操作Oracle数据库详解

    Mybatis注解方式操作Oracle数据库详解

    这篇文章主要介绍了Mybatis注解方式操作Oracle数据库详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • jmeter断言的三种实现方式

    jmeter断言的三种实现方式

    在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言,本文主要介绍了jmeter断言的三种实现方式,
    2024-01-01

最新评论