@TableName
- @TableName(表名注解)
@TableName(value = "em_t")
public class Test {
private String id;
private String name;
}
@TableId
- @TableId(表名主键)
value:主键字段名
type:主键类型:
写法:IdType.NONE- ASSIGN_ID(雪花算法)
- AUTO——数据库自增
- INPUT——自行输入,插入前自行设置主键值
- NONE——无状态
- ASSIGN_UUID(排除中划线的UUID)
下面已删除 - ID_WORKER——分布式全局唯一ID长整型类型
- UUID——32位UUID字符串
- ID_WORKER_STR——分布式全局唯一ID字符串类型
- @TableId(value = “id”, type = IdType.AUTO):自增
- @TableId(value = “id”, type = IdType.ID_WORKER_STR):分布式全局唯一ID字符串类型
- @TableId(value = “id”, type = IdType.INPUT):自行输入
- @TableId(value = “id”, type = IdType.ID_WORKER):分布式全局唯一ID 长整型类型
- @TableId(value = “id”, type = IdType.UUID):32位UUID字符串
- @TableId(value = “id”, type = IdType.ASSIGN_ID)
- @TableId(value = “id”, type = IdType.ASSIGN_UUID)
@TableName(value = "em_t")
public class Test {
@TableId(value = "emid",type= IdType.AUTO)
private String emid;
private String name;
}
@TableField
- @TableField
value:字段名
exit:是否为数据库表字段
Strategy:字段验证
写法:FieldStrategy.NOT_NULL- IGNORED——忽略判断
- NOT_NULL——非NULL判断
- NOT_EMPTY——非空判断(字符串类型)
- DEFAULT——追随全局配置
fill:字段自动填充策略(需要写相关的配置类)
写法:FieldFill.DEFAULT
- DEFAULT——默认不处理
- INSERT——插入时填充字段
- UPDATE——更新时填充字段
- INSERT_UPDATE——插入和更新时填充字段
- @TableField(value = “age”)// 用来解决数据库中的字段和实体类的字段不匹配问题
- @TableField(exist = false) // 用来解决实体类中有的属性但是数据表中没有的字段,默认为true
- @TableField(condition = SqlCondition.LIKE):表示该属性可以模糊搜索。
- @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 | 插入和更新填充字段 |
@TableField(value = "ename")
private String ename;
@TableField(.. , update="%s+1") 其中 %s 会填充为字段
输出 SQL 为:update 表 set 字段=字段+1 where ...
@TableField(.. , update="now()") 使用数据库时间
输出 SQL 为:update 表 set 字段=now() where ...
@TableField(condition = SqlCondition.LIKE)
private String name;
输出 SQL 为:select 表 where name LIKE CONCAT('%',值,'%')
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用于输出的时候时间格式解析