@TableName

  • @TableName(表名注解)
  1. @TableName(value = "em_t")
  2. public class Test {
  3. private String id;
  4. private String name;
  5. }

@TableId

  • @TableId(表名主键)
    value:主键字段名
    type:主键类型:
    写法:IdType.NONE
    • ASSIGN_ID(雪花算法)
    • AUTO——数据库自增
    • INPUT——自行输入,插入前自行设置主键值
    • NONE——无状态
    • ASSIGN_UUID(排除中划线的UUID)
      下面已删除
    • ID_WORKER——分布式全局唯一ID长整型类型
    • UUID——32位UUID字符串
    • ID_WORKER_STR——分布式全局唯一ID字符串类型
  1. @TableId(value = “id”, type = IdType.AUTO):自增
  2. @TableId(value = “id”, type = IdType.ID_WORKER_STR):分布式全局唯一ID字符串类型
  3. @TableId(value = “id”, type = IdType.INPUT):自行输入
  4. @TableId(value = “id”, type = IdType.ID_WORKER):分布式全局唯一ID 长整型类型
  5. @TableId(value = “id”, type = IdType.UUID):32位UUID字符串
  6. @TableId(value = “id”, type = IdType.ASSIGN_ID)
  7. @TableId(value = “id”, type = IdType.ASSIGN_UUID)
  1. @TableName(value = "em_t")
  2. public class Test {
  3. @TableId(value = "emid",type= IdType.AUTO)
  4. private String emid;
  5. private String name;
  6. }

@TableField

  • @TableField
    value:字段名
    exit:是否为数据库表字段
    Strategy:字段验证
    写法:FieldStrategy.NOT_NULL
    • IGNORED——忽略判断
    • NOT_NULL——非NULL判断
    • NOT_EMPTY——非空判断(字符串类型)
    • DEFAULT——追随全局配置

fill:字段自动填充策略(需要写相关的配置类)
写法:FieldFill.DEFAULT

  • DEFAULT——默认不处理
  • INSERT——插入时填充字段
  • UPDATE——更新时填充字段
  • INSERT_UPDATE——插入和更新时填充字段
  1. @TableField(value = “age”)// 用来解决数据库中的字段和实体类的字段不匹配问题
  2. @TableField(exist = false) // 用来解决实体类中有的属性但是数据表中没有的字段,默认为true
  3. @TableField(condition = SqlCondition.LIKE):表示该属性可以模糊搜索。
  4. @TableField(fill = FieldFill.INSERT):注解填充字段,自动填充创建更新时间,
    public class MyMateObjectHandler implements MetaObjectHandler 重写里面的方法
  • FieldStrategy | 值 | 描述 | | —- | —- | | value | 字段值(驼峰命名方式,该值可无) | | update | 预处理 set 字段自定义注入 | | condition | 预处理 WHERE 实体条件自定义运算规则 | | el | 详看注释说明 | | exist | 是否为数据库表字段( 默认 true 存在,false 不存在 ) | | strategy | 字段验证 (默认 非 null 判断,查看 com.baomidou.mybatisplus.enums.FieldStrategy ) | | fill | 字段填充标记 ( FieldFill, 配合自动填充使用 ) |
  • 字段填充策略 FieldFill | 值 | 描述 | | —- | —- | | DEFAULT | 默认不处理 | | INSERT | 插入填充字段 | | UPDATE | 更新填充字段 | | INSERT_UPDATE | 插入和更新填充字段 |
  1. @TableField(value = "ename")
  2. private String ename;
  3. @TableField(.. , update="%s+1") 其中 %s 会填充为字段
  4. 输出 SQL 为:update set 字段=字段+1 where ...
  5. @TableField(.. , update="now()") 使用数据库时间
  6. 输出 SQL 为:update set 字段=now() where ...
  7. @TableField(condition = SqlCondition.LIKE)
  8. private String name;
  9. 输出 SQL 为:select where name LIKE CONCAT('%',值,'%')
  10. 12345678910111213

@NotBlank:只用在String上,表示传进来的值不能为null,而且调用trim()后,长度必须大于0
@NotNull:不能为null,但可以为empty(分配了内存空间,但值为空)
@NotEmpty:不能为null,而且长度必须大于0

@Version:乐观锁注解、标记

@KeySequence:序列主键策略

@EnumValue:通枚举类注解

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

@TableLogic//需要配置文件开启逻辑删除

@SqlParser:租户注解

@JsonInclude @JsonFormat

@JsonInclude(value=Include.NON_NULL) :用在实体类的方法类的头上 作用是实体类的参数查询到的为null的不显示

@DateTimeFormat:用于接收 前端传的时间值自动转换 可以是Date 可以是string 注意 格式要一样 如yyyy-MM-dd yyyy/MM/ddd

@JsonFormat用于输出的时候时间格式解析