自动填充 addTime,updateTime等字段

之前我们项目经理对我说过一段话,大概的意思:每个表都应该包括add_time,update_time,deleted字段,会有极大的用处!

 我们用到最多的就是mybatis-plus,下面我就拿它来接单介绍一下使用

新建一个user表


创建它的实体类

@Data
@TableName("user")
public class User implements Serializable {

    private static final long serialVersionUID = 9099266107829856068L;
    @TableId(type = IdType.UUID)
    private String id;
    
    private String name;
    
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime addTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

}

注解的含义:


@TableId(type = IdType.UUID)  :自动生成id(uuid格式无“-”)

自定义Id 注入IdentifierGenerator 
@Bean
public IdentifierGenerator idGenerator() {
    return new CustomIdGenerator();
}
@TableField(fill = FieldFill.INSERT) : 被标识的字段执行insert插入语句时自动插入操作
@TableField(fill = FieldFill.INSERT_UPDATE) :被标识的字段执行insert和update时时自动插入操作

配置文件 

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.setInsertFieldValByName("addTime", LocalDateTime.now(),metaObject);
        this.setInsertFieldValByName("updateTime",LocalDateTime.now(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setUpdateFieldValByName("updateTime",LocalDateTime.now(),metaObject);
    }

}

注意:时间字段要用 LocalDateTime.表示,用Date会有时间不匹配的问题
 

测试:

更新该数据

ok!!!

猜你喜欢

转载自blog.csdn.net/weixin_44912855/article/details/110677347
今日推荐