MyBatis-Plus—日期时间自动填充
# MyBatis-Plus—日期时间自动填充
创建时间、修改时间!这些个操作一遍都是自动化完成的,我们不希望手动更新!
阿里巴巴开发手册:所有的数据库表:gmt_create
、gmt_modified
几乎所有的表都要配置上!而且需 要自动化!
# 方式一:数据库级别
数据库级别(但是在工作中不允许你修改数据库,不推荐这种!)
步骤一、在表中新增字段 create_time
,update_time
步骤二、实体类同步,插入新的属性!
private Date createTime;
private Date updateTime;
1
2
2
步骤三、测试,更新查看结果即可
# 方式二:代码级别
代码级别,推荐使用!
步骤一:删除数据库的时间字段的默认值、更新操作!
步骤二:实体类时间字段属性上需要增加注解!
// 字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
1
2
3
4
5
6
2
3
4
5
6
步骤三:编写处理器来处理这个注解即可!
@Slf4j
@Component // 一定不要忘记把处理器加到IOC容器中!
public class MyMetaObjectHandler implements MetaObjectHandler {
// 插入时的填充策略
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill.....");
// setFieldValByName(String fieldName, Object fieldVal, MetaObject
metaObject
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
// 更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill.....");
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
步骤四:测试插入,测试更新、观察时间即可!
编辑 (opens new window)