Mybatisplus 常用注解

这篇具有很好参考价值的文章主要介绍了Mybatisplus 常用注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Mybatisplus 注解

@TableName 

表名注解,标识实体类对应的表

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
public @interface TableName {
    // 表名
    String value() default "";

    // schema
    String schema() default "";

    // 是否保持使用全局的 tablePrefix 的值(当全局 tablePrefix 生效时)
    boolean keepGlobalPrefix() default false;
    
    // xml 中 resultMap 的 id(用于满足特定类型的实体类对象绑定)
    String resultMap() default "";
    
    // 是否自动构建 resultMap 并使用(如果设置 resultMap 则不会进行 resultMap 的自动构建与注入)
    boolean autoResultMap() default false;
    
    // 需要排除的属性名
    String[] excludeProperty() default {};
}

@TableId

主键注解

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableId {
    // 主键字段名
    String value() default "";
    
    // 指定主键类型
    IdType type() default IdType.NONE;
}

public enum IdType {
    // AUTO	数据库 ID 自增
    AUTO(0),

    // NONE	无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
    NONE(1),

    // INPUT insert 前自行 set 主键值
    INPUT(2),

    // ASSIGN_ID 分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
    ASSIGN_ID(3),

    // ASSIGN_UUID 分配 UUID,主键类型为 String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认 default 方法)
    ASSIGN_UUID(4);

    private final int key;

    private IdType(int key) {
        this.key = key;
    }

    public int getKey() {
        return this.key;
    }
}

@TableField 

字段注解(非主键)

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableField {
    // 数据库字段名
    String value() default "";
    
    // 是否为数据库表字段
    boolean exist() default true;

    // 字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}    
    String condition() default "";

    // 字段 update set 部分注入,例如:当在version字段上注解update="%s+1" 表示更新时会 set version=version+1 (该属性优先级高于 el 属性)
    String update() default "";

    // FieldStrategy
    FieldStrategy insertStrategy() default FieldStrategy.DEFAULT;
    
    // FieldStrategy
    FieldStrategy updateStrategy() default FieldStrategy.DEFAULT;

    // FieldStrategy
    FieldStrategy whereStrategy() default FieldStrategy.DEFAULT;

    // 字段自动填充策略
    FieldFill fill() default FieldFill.DEFAULT;

    // 是否进行 select 查询
    boolean select() default true;

    // 是否保持使用全局的 format 进行处理
    boolean keepGlobalFormat() default false;

    
    String property() default "";

    // JDBC 类型 (该默认值不代表会按照该值生效)
    JdbcType jdbcType() default JdbcType.UNDEFINED;

    // 类型处理器 (该默认值不代表会按照该值生效)
    Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;

   
    boolean javaType() default false;

    // 指定小数点后保留的位数
    String numericScale() default "";
}

public enum FieldStrategy {
    // 忽略判断
    IGNORED,
    // 非 NULL 判断
    NOT_NULL,
    // 非空判断(只对字符串类型字段,其他类型字段依然为非 NULL 判断)
    NOT_EMPTY,
    // 追随全局配置
    DEFAULT,
    // 不加入SQL
    NEVER;

    private FieldStrategy() {
    }
}


public enum FieldFill {
    // 默认不处理
    DEFAULT,
    // 插入时填充字段
    INSERT,
    // 更新时填充字段
    UPDATE,
    // 插入和更新时填充字段
    INSERT_UPDATE;

    private FieldFill() {
    }
}

@Version

乐观锁注解、标记 @Version 在字段上

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface Version {
}

@EnumValue

普通枚举类注解(注解在枚举字段上)

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface EnumValue {
}

@TableLogic

表字段逻辑处理注解(逻辑删除)

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableLogic {
    // 逻辑未删除值
    String value() default "";
    // 逻辑删除值
    String delval() default "";
}

@OrderBy

内置 SQL 默认指定排序,优先级低于 wrapper 条件查询

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface OrderBy {
    // 是否倒序查询
    boolean asc() default false;

    /** @deprecated */
    @Deprecated
    boolean isDesc() default true;
    
    // 数字越小越靠前
    short sort() default 32767;
}

二、Mybatits注解  

@Select

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Repeatable(Select.List.class)
public @interface Select {
    String[] value();

    String databaseId() default "";

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    public @interface List {
        Select[] value();
    }
}

@Delete

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Repeatable(Delete.List.class)
public @interface Delete {
    String[] value();

    String databaseId() default "";

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    public @interface List {
        Delete[] value();
    }
}

@Insert

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Repeatable(Insert.List.class)
public @interface Insert {
    String[] value();

    String databaseId() default "";

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    public @interface List {
        Insert[] value();
    }
}

@Update

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Repeatable(Update.List.class)
public @interface Update {
    String[] value();

    String databaseId() default "";

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    public @interface List {
        Update[] value();
    }
}

@Mapper

@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
public @interface Mapper {
}


MyBatis-Plus 官网地址

MyBatis中文网文章来源地址https://www.toymoban.com/news/detail-713746.html

到了这里,关于Mybatisplus 常用注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatisplus 常用注解

    表名注解,标识实体类对应的表 主键注解 字段注解(非主键) 乐观锁注解、标记 @Version 在字段上 普通枚举类注解(注解在枚举字段上) 表字段逻辑处理注解(逻辑删除) 内置 SQL 默认指定排序,优先级低于 wrapper 条件查询 MyBatis-Plus 官网地址 MyBatis中文网

    2024年02月08日
    浏览(34)
  • Java框架学习(二)SSM体系:Spring、SpringMVC、MybatisPlus

    在原始的分层架构实现中,负责响应请求的Controller层依赖于业务逻辑处理的Service层,而业务逻辑处理的service层又依赖与数据访问Dao层。上下层间相互依赖耦合,耦合的缺陷在于牵一发而动全身,不利于后期维护拓展。 为了分层解耦,Spring采用IoC控制反转和DI依赖注入,来解

    2024年02月11日
    浏览(51)
  • SpringBoot框架——8.MybatisPlus常见用法(常用注解+内置方法+分页查询)

    1.MybatisPlus常用注解:         1.1 当数据库、表名和字段名和实体类完全一致时无需加注解,不一致时:         @TableName指定库名         @TableId指定表名         @TableField指定字段名         1.2 自增主键:         @TableId(type=IdType.AUTO)         private Long id;        

    2024年04月26日
    浏览(41)
  • java 常用注解, 常用关键字

    用 @Controller 定义一个控制器类 @Controller 用于标记在一个类上,使用它标记的类就是一个Spring(MVC,BOOT)的 Controller类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了 @RequestMapping 注解。 @Controller 只是定义了一个控制器类,而使用 @RequestMapping 注解的方法

    2024年02月08日
    浏览(42)
  • Java常用注解

    友情提醒: 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。用到的资料都放在文章最末尾了(不过估计也没人看完这篇文章,太长了) ①元数据概念 :描述数据或信息资源等对象的数据,其使用目的在于:识别资源;评价资源;追踪使用

    2024年02月04日
    浏览(38)
  • java中常用注解汇总

    1 Maven依赖     2 值校验 2.1 @Null注解 被注解的元素必须为null 2.2 @NotNull注解 被注解的元素必须不为null 2.3 @NotBlank注解 验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。 2.4 @NotEmpty注解 验证注解的元素值不为null且不为空(字符串长度不为0、集

    2024年02月14日
    浏览(44)
  • Java jackson常用注解汇总

    提起 jackson ,在日常使用中,由于涉及到各种序列化和反序列化的处理,就不能不提 注解 ,了解注解的常用方式可以极大地方便我们处理序列化,今天分享一些在使用 jackson 中涉及到的注解。 目录 1.@JsonProperty - 字段命名 2.@JsonPropertyOrder - 字段序列化顺序 3.@JsonAlias - 字段别

    2024年02月05日
    浏览(47)
  • MyBatis-Plus 引入依赖导致的Error creating bean和java.lang.NoClassDefFoundError: com/baomidou/mybatisplus问题

     使用mybatis-plus出现的一些问题记录。 问题错误截图 问题原因: 依赖冲突 项目主pom文件中引入了mybatis-plus-boot-start依赖,版本为 3.5.3 业务包中引入mybatis-plus代码生成器依赖版本为 3.4.1 导致mybatis-plus-core核心包存在两个版本,导致冲突   解决办法 修改业务包中mybatis-plus代码

    2024年02月09日
    浏览(53)
  • Java的一些常用注解及其作用

    1.1 @Component 通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。 1.2 @Repository 对应持久层即 Dao 层,主要用于数据库相关操作。 1.3 @Service 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。 1.4 @Controller 对应 Spring MV

    2024年02月01日
    浏览(41)
  • Java、Java EE、Spring和Spring Boot核心注解

    文章迁移至个人博客 此页面包含常用 Java 、 Java EE 、 Spring 、 Spring Boot 、 JPA 常用注解的一站式说明。 @Component注解 @Component 注解表明被注解的类是一个“spring bean/组件”。@Component注解告诉Spring容器自动创建Spring bean。 @Autowired注解 @Autowired 注解用于自动注入 bean。@Autowired 注

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包