mybatisplus添加字段填充(java)


我的新博客:https://blog.rain888.cn/

使用mybatisplus開發時,有一些字段是通用的,為避免每次都要重復寫代碼,可以使用字段填充功能,包括 INSERT和UPDATE

一、在所需要的實體類的字段上添加

@TableField(value = "F_CREATORUSERID",fill = FieldFill.INSERT)
private String creatorUserId;
//或者
@TableField(value = "F_LASTMODIFYTIME",fill = FieldFill.UPDATE)
private Date lastModifyTime;

二、添加完之后我們需要建個類繼承MetaObjectHandler來實現字段填充

@Component
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {


    private UserProvider userProvider;

    @Override
    public void insertFill(MetaObject metaObject) {
        userProvider = SpringContext.getBean(UserProvider.class);//此處是為獲取用戶信息而添加的
        UserInfo userInfo=userProvider.Get();
        this.setFieldValByName("creatorUserId", userInfo.getUserId(),metaObject);
        this.setFieldValByName("creatorTime", new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        userProvider = SpringContext.getBean(UserProvider.class);
        UserInfo userInfo=userProvider.Get();
        this.setFieldValByName("lastModifyTime", new Date(),metaObject);
        this.setFieldValByName("lastModifyUserId", userInfo.getUserId(),metaObject);
    }


}

三、需要在mybatisconfig中添加全局配置GlobalConfig

//全局配置
GlobalConfig globalConfig  = new GlobalConfig();
//配置填充器
globalConfig.setMetaObjectHandler(new MybatisPlusMetaObjectHandler());
bean.setGlobalConfig(globalConfig);

添加完這個就可以實現自動填充了
另外可以添加傳過來的參數為空時才進行填充

Object enabledMark = this.getFieldValByName("enabledMark", metaObject);
if (enabledMark == null) {
                    this.setFieldValByName("enabledMark", 1, metaObject);
                }

我的博客:https://blog.rain888.cn/,歡迎來訪


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM