创建时间、修改时间,这些操作一般都是自动完成的,我们不希望手动更新

    阿里巴巴开发手册: 所有的数据库表:gmt_create 、gmt_modified几乎所有的表都要配置上,而且需要自动化

    方式一:数据库级别(不建议使用)

    1、在表中新增字段create_time,update_time

    image.png
    2、再次测试插入方法,需要先把实体类同步

    1. private Date createTime;
    2. private Date updateTime;

    3、再次更新查看结果即可
    image.png

    方式二:代码级别

    1、删除数据库的默认值、更新操作
    image.png

    2、实体类的字段属性上需要增加注解

    1. // 字段添加填充内容
    2. @TableField(fill = FieldFill.INSERT)
    3. private Date createTime;
    4. @TableField(fill = FieldFill.INSERT_UPDATE)
    5. private Date updateTime;

    3、编写处理器来处理这个注解即可

    1. package com.cedric.mybatisplus.handler;
    2. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    3. import lombok.extern.slf4j.Slf4j;
    4. import org.apache.ibatis.reflection.MetaObject;
    5. import org.springframework.stereotype.Component;
    6. import java.util.Date;
    7. @Component //一定要记住把处理器加到IOC容器中
    8. @Slf4j
    9. public class MyMetaObjectHandler implements MetaObjectHandler {
    10. // 插入时的填充策略
    11. @Override
    12. public void insertFill(MetaObject metaObject) {
    13. log.info("start insert fill....");
    14. this.setFieldValByName("createTime",new Date(),metaObject);
    15. this.setFieldValByName("updateTime",new Date(),metaObject);
    16. }
    17. // 更新时的填充策略
    18. @Override
    19. public void updateFill(MetaObject metaObject) {
    20. log.info("start update fill....");
    21. this.setFieldValByName("updateTime",new Date(),metaObject);
    22. }
    23. }

    4、测试插入

    5、测试更新、观察时间即可