欢迎您的访问
专注于分享最有价值的互联网技术干货

Mybatis-Plus之自动填充(数据库表中更新,创建时间)

几个T的资料等你来白嫖
双倍快乐
一定要收藏这个宝藏网站防止丢失,资源帮找!!!
  • 创建时间,修改时间,这些操作一遍都是自动化完成的,我们不希望手动更新。
  • 阿里巴巴开发手册:所有的数据库表:gmt_create,gmt_modified几乎所有的表都要配置上,而且需要自动化。

方式一:数据库级别:

  • 但是最好不要这样做,因为如果我们工作了,最好不要修改数据库
    20210712121911598.png
  • 每次向表中插入数据时,不需要插入create_time这一列的值,因为它有默认值,它会自动填充的。
  • 再次测试插入方法时:
    20210712121911975.png
  • 为什么只有最后一条语句实现插入时间?
    因为我们在实体类中没有添加创建和更新时间字段。

方式二:代码级别:

  • 删除数据库的默认值和更新操作:
    就是把时间字段的设置都取消掉,只留时间字段。
    20210712121912331.png
  • 把之前写的取消掉,在实体类属性添加注解:
    20210712121912714.png
  • 查看TableField的源码发现:
    20210712121912990.png
  • 编写处理器处理这个注解:
    20210712121913352.png
  • 官网上填写如下:

    @Slf4j@Componentpublic 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.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug请升级到之后的版本如<code>3.3.1.8-SNAPSHOT</code>)
            /* 上面选其一使用,下面的已过时(注意 strictInsertFill 有多个方法,详细查看源码) */
            //this.setFieldValByName("operator", "Jerry", metaObject);
            //this.setInsertFieldValByName("operator", "Jerry", metaObject);
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
    
            log.info("start update fill ....");
            this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
            this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug请升级到之后的版本如<code>3.3.1.8-SNAPSHOT</code>)
            /* 上面选其一使用,下面的已过时(注意 strictUpdateFill 有多个方法,详细查看源码) */
            //this.setFieldValByName("operator", "Tom", metaObject);
            //this.setUpdateFieldValByName("operator", "Tom", metaObject);
        }}
  • 再次执行插入测试:
    20210712121913415.png
赞(0) 打赏
版权归原创作者所有,任何形式转载请联系我们:大白菜博客 » Mybatis-Plus之自动填充(数据库表中更新,创建时间)

评论 抢沙发

8 + 0 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏