Loading... 使用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 ![][1] //全局配置 GlobalConfig globalConfig = new GlobalConfig(); //配置填充器 globalConfig.setMetaObjectHandler(new MybatisPlusMetaObjectHandler()); bean.setGlobalConfig(globalConfig); 添加完这个就可以实现自动填充了 <div class="tip inlineBlock info"> 另外可以添加传过来的参数为空时才进行填充 </div> Object enabledMark = this.getFieldValByName("enabledMark", metaObject); if (enabledMark == null) { this.setFieldValByName("enabledMark", 1, metaObject); } [1]: https://img2020.cnblogs.com/blog/1861561/202007/1861561-20200729164814731-1040439617.png 最后修改:2020 年 11 月 14 日 09 : 07 PM © 允许规范转载
牛啊 阿武
嘿嘿嘿