我是靠谱客的博主 坚定店员,最近开发中收集的这篇文章主要介绍【Mybatis Plus高级使用】公共字段自动填充,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于一些基础字段,比如创建时间、修改时间、创建人、修改人等基础字段,可以使用mybatis plus的公共字段自动填充功能进行自动入库、更新,减少手写代码及代码耦合。

提取公共字段

将需要自动填充的功能字段提取出来,形成父类,所有有这些字段的实体继承父类即可

@TableField注解

fill 值为INSERT时代表insert方法生效,INSERT_UPDATE代表insert和update方法都生效

  @TableField(fill = FieldFill.INSERT)
  
 @TableField(fill = FieldFill.INSERT_UPDATE)

自定义公共字段填充处理器

实现MetaObjectHandler接口,重新update和insert方法

@Log4j2
@Component
public class MetaHandler implements MetaObjectHandler {
    /**
     * 更新数据执行
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        String userId = BaseContextHandler.getUserID();
        this.setFieldValByName("updatedTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("updatedBy", userId!=null?userId:"auto", metaObject);
    }



    /**
     * 新增数据执行
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        String userId = BaseContextHandler.getUserID();
        this.setFieldValByName("createdTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("createdBy", userId!=null?userId:"auto", metaObject);
        this.setFieldValByName("updatedTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("updatedBy", userId!=null?userId:"auto", metaObject);
    }
}

更多相关内容请移步个人博客主页

最后

以上就是坚定店员为你收集整理的【Mybatis Plus高级使用】公共字段自动填充的全部内容,希望文章能够帮你解决【Mybatis Plus高级使用】公共字段自动填充所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部