Bean对象中注解

Bean对象中注解

  1. @TableId

    指定主键

    如果数据库字段设成user_id
    在初始生成后,在代码中会变成userId,不会设置成主键
    使用@TableId(value=“user_id”,type = IdType.AUTO)注解

    “value”:设置数据库字段值
    “type”:设置主键类型、如果数据库主键设置了自增建议使用“AUTO”

    type有六种类型类型,最下面三个只有插入主键为空时,才会自动填充

类型 解释
AUTO 数据库自增ID
NONE 数据库未设置主键类型(将会跟随全局)
INPUT 用户输入ID(该类型可以通过自己注册自动填充插件进行填充)
ID_WORKER 全局唯一ID (idWorker)
UUID 全局唯一ID(UUID)
ID_WORKER_STR 字符串全局唯一ID(idWorker 的字符串表示)
  1. @NotNull

    不能为null,但可以为empty

  2. @NotEmpty

    不能为null,而且长度必须大于0

  3. @NotBlank

    只能作用在String上,不能为null,而且调用trim()后,长度必须大于0

  4. @TableName("table_name")

    指定表名

  5. @TableField

    描述
    value 字段值(驼峰命名方式,该值可无)
    update 预处理 set 字段自定义注入
    condition 预处理 WHERE 实体条件自定义运算规则
    el 详看注释说明
    exist 是否为数据库表字段( 默认 true 存在,false 不存在 )
    strategy 字段验证 ( 默认 非 null 判断,查看 com.baomidou.mybatisplus.enums.FieldStrategy )
    fill 字段填充标记 ( FieldFill, 配合自动填充使用 )
    @TableField(value="last_name")
    //指明字段在表中的名称,如果相同可不写;如果已经开启了驼峰映射,驼峰映射的值与表中字段的名称相同,也可不必添加此注解
    private String last_name;
    
    @TableField(exist=false)
    //指明此字段在数据库中不存在
     private String remark;
    

    ​ @TableField的其他使用方式在此暂不详述

  6. @Data

    • 为类提供读写功能,从而不用写get、set方法

    • 还会为类提供 equals()、hashCode()、toString() 方法

      要想使用 @Data 注解,需安装lombok,并引入lombok依赖

  7. @Accessors

    • @Accessors(fluent = true)

      使用fluent属性,getter和setter方法的方法名都是属性名,且setter方法返回当前对象。

      使用fluent属性时,去跟两个方法的方式为:getter方法不需要传参,setter需要传参,且两个方法返回值不同。

    • @Accessors(chain = true)

      使用chain属性,setter方法返回当前对象

    • @Accessors(prefix = “f”)

      使用prefix属性,getter和setter方法会忽视属性名的指定前缀(遵守驼峰命名)

      如此时,指定的前缀是“f”,则生成的getter和setter方法中会去掉字段的“f”前缀

  8. @JsonProperty

    • 使用此注解需要用到jackson的maven依赖
    • 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。 对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但在数据库设计时使用的是下划线连接方式,此处在进行映射的时候就可以使用该注解。
    • 此注解可用于Bean对象与 json相互转化时字段的转义
    • 使用实例如下
    //使用 @JsonProperty注解将表结构中的字段映射到实体类中,亦可将json中的相应字段转化到实体类中的字段
     @JsonProperty("customer_name")
     private String customerName;
    
  9. @ApiModel

    在实体类上边使用,标记类是swagger的解析类。提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省

    属性名称 数据类型 默认值 说明
    value String 类名 为模型提供备用名称
    description String “” 提供详细的类描述
    parent Class<?> parent Void.class 为模型提供父类以允许描述继承关系
    discriminatory String “” 支持模型继承和多态,使用鉴别器的字段的名称,可以断言需要使用哪个子类型
    subTypes Class<?>[] {} 从此模型继承的子类型数组
    reference String “” 指定对应类型定义的引用,覆盖指定的任何其他元数据
  10. @ApiModelProperty

    使用在被 @ApiModel 注解的模型类的属性上,添加和操作模型属性的数据

    属性名称 数据类型 默认值 说明
    value String “” 属性简要说明
    name String “” 运行覆盖属性的名称。重写属性名称
    allowableValues String “” 限制参数可接收的值,三种方法,固定取值,固定范围
    access String “” 过滤属性,参阅:io.swagger.core.filter.SwaggerSpecFilter
    notes String “” 目前尚未使用
    dataType String “” 参数的数据类型,可以是类名或原始数据类型,此值将覆盖从类属性读取的数据类型
    required boolean false 是否为必传参数,false:非必传参数; true:必传参数
    position int 0 允许在模型中显示排序属性
    hidden boolean false 隐藏模型属性,false:不隐藏; true:隐藏
    example String “” 属性的示例值
    readOnly boolean false 指定模型属性为只读,false:非只读; true:只读
    reference String “” 指定对应类型定义的引用,覆盖指定的任何其他元数据
    allowEmptyValue boolean false 允许传空值,false:不允许传空值; true:允许传空值
posted @ 2020-12-17 20:14  来一杯coffee  阅读(299)  评论(0)    收藏  举报