Mybatis Plus表的创建时间和修改时间的操作方法

1、建议一定使用字段

gmt_create和gmt_modified

字段的类型datetime

方法一、在实体类的注解上添加操作

(1)创建对应的数据表,注意字段的类型datetime

D29226E7-6323-0F05-B64C-E74952AD7028.png

(2)在gmt_create和gmt_modified字段上面添加注解@TableField(XXX)

5DFDB153-48CC-4B17-398C-CB194AF83650.png

(3)添加处理器

9A7E8E8B-BB97-90AC-81FF-16C20D4A00BA.png

(4)内容如下

注意如有需要对应数据表,修改为:gmtCreate和gmtModified

@Component
//编写处理器Handler来进行自动填充,把下面的代码直接写在自己的handler包内
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        //属性名称,不是字段名称
        this.setFieldValByName("gmtCreate", LocalDateTime.now(), metaObject);
        this.setFieldValByName("gmtModified", LocalDateTime.now(), metaObject);
    }

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

注意,推荐的写法如下:

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
        // 或者
        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
        // 或者
        this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)

        // 或者
        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
        // 或者
        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
        // 或者
        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
    }
}

方法二:不建议使用数据库方法

(1)设置默认为CURRENT_TIMESTAMP

(2)同时对gmt_modified添加更新

4BF8E8A9-2FC7-9BDE-58BD-F8F2B46F96F2.png

收藏 (0)
评论列表
正在载入评论列表...
我是有底线的
为您推荐
    暂时没有数据