热爱技术,追求卓越
不断求索,精益求精

【14】让Mybatis-Plus新增和修改时自动设置时间和修改者

从0开始搭建后台管理系统,这是No14。上一篇我们讲到了:引入MapStruct,对象转化更轻松。这一节,我们来优化下Mybatis-Plus相关的细节。

在Mybatis-Plus新增和修改时自动设置时间和修改者。

package cn.lovecto.yuen.framework.mybatisplus.handler;

import java.util.Date;

import org.apache.ibatis.reflection.MetaObject;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;

import cn.hutool.core.util.ObjectUtil;
import cn.lovecto.yuen.common.utils.LoginUtils;
import cn.lovecto.yuen.framework.mybatisplus.domain.BaseEntity;
import lombok.extern.slf4j.Slf4j;

/**
 * 通过实现 com.baomidou.mybatisplus.core.handlers.MetaObjectHandler接口来实现
 * 字段填充
* @ClassName: YuenMetaObjectHandler 
* @Description: 
* @author Jun.Yang 24696026@qq.com 
* @date 2025年12月23日 上午10:43:26 
*
 */
@Slf4j
public class YuenMetaObjectHandler implements MetaObjectHandler{

	@Override
	public void insertFill(MetaObject metaObject) {
		if(ObjectUtil.isNull(metaObject)) {
			return;
		}
		if(!(metaObject.getOriginalObject() instanceof BaseEntity)) {
			return;
		}
		Date now = new Date();
		BaseEntity entity = (BaseEntity)metaObject.getOriginalObject();
		//设置时间
		entity.setCreateTime(now);
		entity.setUpdateTime(now);
		//设置创建用户
		if(ObjectUtil.isNull(entity.getCreater())) {
			entity.setCreater(LoginUtils.getLoginUserId());
		}
	}

	@Override
	public void updateFill(MetaObject metaObject) {
		if(ObjectUtil.isNull(metaObject)) {
			return;
		}
		if(!(metaObject.getOriginalObject() instanceof BaseEntity)) {
			return;
		}
		Date now = new Date();
		BaseEntity entity = (BaseEntity)metaObject.getOriginalObject();
		//填充修改时间
		entity.setUpdater(LoginUtils.getLoginUserId());
		entity.setUpdateTime(now);
	}

}
赞(0)
未经允许不得转载:LoveCTO » 【14】让Mybatis-Plus新增和修改时自动设置时间和修改者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

热爱技术 追求卓越 精益求精