Mybatis plus 实体类常用注解

这里简单记录常用的注解,详情需要去官网学习!!

1、@TableName 用于定义表名

2、@TableId 用于定义表的主键

属性:

value 用于定义主键字段名
type 用于定义主键类型(主键策略 IdType)

主键策略:

IdType.AUTO          主键自增,系统分配,不需要手动输入,但需要设置 mysql auto_increment
IdType.NONE          未设置主键
IdType.INPUT         需要自己输入 主键值
IdType.ASSIGN_ID     系统分配 ID,用于数值型数据(Long,对应 mysql 中 BIGINT 类型)
IdType.ASSIGN_UUID   系统分配 UUID,用于字符串型数据(String,对应 mysql 中 varchar(32) 类型)

3、@TableField 用于定义表的非主键字段

属性:

value 用于定义非主键字段名,用于别名匹配,假如java对象属性和数据库属性不一样
​
exist 用于指明是否为数据表的字段, true 表示是,false 为不是,假如某个java属性在数据库没对应的字段则要标记为faslse

fill 用于指定字段填充策略(FieldFill,用的不多)
  字段填充策略:一般用于填充 创建时间、修改时间等字段
  FieldFill.DEFAULT         默认不填充
  FieldFill.INSERT          插入时填充
  FieldFill.UPDATE          更新时填充
  FieldFill.INSERT_UPDATE   插入、更新时填充。

 注意,在使用 fill 字段填充策略时,需要实现处理才能生效,如下:

/**
 * 将MybatisObjectHandler注入spring容器中,操作数据添加或者修改时,自动给
 * 指定字段添加数据
 */
@Component
public class MybatisObjectHandler implements MetaObjectHandler {

// birthday 指定的字段名称,表示在insert场合可以操作该方法 @Override
public void insertFill(MetaObject metaObject) { setFieldValByName("birthday", new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { setFieldValByName("updateTime",new Date(),metaObject); } }

4、案列

@Data
@TableName("Test3")
public class Test3 {

    /**
     * IdType.AUTO  主键自增,不需要手动输入,但需要设置mysql auto_increment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    @TableField(value = "name")
    private String name;

    /**
     * 某个java属性在数据库没对应的字段则要标记为faslse,默认是true
     */
    @TableField(exist = false)
    private String address;

    /**
     * 插入时填充, 添加日期
     */
    @TableField(value = "birthday", fill = FieldFill.INSERT )
    private Date birthday;

}