1. 程式人生 > 實用技巧 >mybatisplus新增欄位填充

mybatisplus新增欄位填充

使用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);




新增完這個就可以實現自動填充了