# MyBatis-Plus教程 - 12 自动填充

什么是自动填充?

我们在插入或更新数据的时候,经常需要设置插入时间或更新时间,每个表的插入和更新操作都需要进行这些相同的操作。

我们可以使用 MyBatis-Plus 提供的自动填充功能,在插入或更新的时候,自动填充类似创建时间、更新时间、操作人等字段,减少手动设置这些字段的工作量,并确保数据的一致性。

# 12.1 自动填充的实现

下面以自动填充创建时间和更新时间为例,演示自动填充的实现。

# 1 数据库表设置

首先数据库得有创建时间和更新时间的字段,添加 create_timeupdate_time 字段,类型为 datetime

前面我的表中已经有了。

# 2 修改pojo

实体类中属性需要添加 @TableField 注解,

User.java:

@Data
@TableName("tb_user")
public class User {
    private Long id;
    private String username;
    private String password;
    private Integer age;
    private String email;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

createTimeupdateTime 属性上添加 @TableField 注解。FieldFill.INSERT 表示插入的时候填充,FieldFill.INSERT_UPDATE 表示插入和更新的时候填充,还有 FieldFill.UPDATE 可以使用,表示只有在更新的时候自动填充。

# 3 实现 MetaObjectHandler

创建包(自定定义或使用已存在的包),并在其下创建一个类来实现 MetaObjectHandler 接口,并重写 insertFillupdateFill 方法。

内容未完......