[toc]

MyBatisPlus的自动填充

​ 项目中经常会遇到一些数据,每次都使用相同的方式填充,例如记录的创建时间,更新时间等。我们可以使用MyBatisPlus的自动填充功能,完成这些字段的赋值工作,当然也可以使用手动设置的方式,根据自己的习惯自行选择。

数据库表中添加自动填充字段

在User表中添加datetime类型的新的字段 create_time、update_time

实体上添加注解
1
2
3
4
5
6
7
8
9
10
11
@Data
public class User {
......

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

// @TableField(fill = FieldFill.UPDATE)
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
实现元对象处理器接口

注意:不要忘记添加 @Component 注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* @Date 2020/4/10 12:49
* @Version 10.21
* @Author DuanChaojie
*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}

@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
测试
  • 再执行insert操作和更新操作就会自动填充时间。

![8 mp实现自动填充](/medias/mybatisplus/8 mp实现自动填充-1586607059921.png)