欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

mybatisplus实现自动填充时间的项目实践,

来源: javaer 分享于  点击 30303 次 点评:110

mybatisplus实现自动填充时间的项目实践,


数据库表中的字段

  • 创建时间 (createTime)
  • 更新时间 (updateTime)

每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每次增删改 都要set设置比较麻烦。

  • 使用自动填充功能,就不用我们自己set了。

1、在实体类Entity中 添加注解

  • @TableField(fill = FieldFill.INSERT) //插入时自动填充
  • @TableField(fill = FieldFill.INSERT_UPDATE) // 插入 和 更新时 自动填充

在这里插入图片描述

2、配置自动填充 拦截器

在这里插入图片描述

在这里插入图片描述

3、数据库表中 创建时间,更新时间,创建人,更新人 字段名。

在这里插入图片描述

4、自动填充 拦截器
MyMetaObjectHandler

package com.sangeng.handler.mybatisplus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.sangeng.utils.SecurityUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {//实现MetaObjectHandler
    //配置自动填充 拦截器
    //insert操作时填充方法
    @Override
    public void insertFill(MetaObject metaObject) {
        Long userId = null;
//        try {
            userId = SecurityUtils.getUserId(); //从token中拿到userid,自动填充
//        } catch (Exception e) {     e.printStackTrace();
//        注册的时候,不能获取当前userid,所以userid设置为-1
//           userId = -1L;//表示是自己创建
//        }
        this.setFieldValByName("createTime", new Date(), metaObject);   //创建时间
        this.setFieldValByName("createBy",userId , metaObject);         //创建人
        this.setFieldValByName("updateTime", new Date(), metaObject);   //更新时间
        this.setFieldValByName("updateBy", userId, metaObject);         //更新人
    }
    //update操作时填充方法
    @Override
    public void updateFill(MetaObject metaObject) { //填充 更新时间
        this.setFieldValByName("updateTime", new Date(), metaObject);
//        this.setFieldValByName(" ", SecurityUtils.getUserId(), metaObject);
    }
}

实体类

    @TableField(fill = FieldFill.INSERT) //插入时 自动添加创建人
    private Long createBy;
    @TableField(fill = FieldFill.INSERT) //插入时 自动添加 创建时间
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新人
    private Long updateBy;
    @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新时间
    private Date updateTime;

到此这篇关于mybatisplus实现自动填充时间的项目实践的文章就介绍到这了,更多相关mybatisplus 自动填充时间内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程! 

您可能感兴趣的文章:
  • mybatisplus 实现接口MetaObjectHandler自动填充字段值
  • MybatisPlus自动填充创建(更新)时间问题
  • MybatisPlus字段自动填充失效,填充值为null的解决方案
  • mybatisplus自动填充属性值的实现步骤
  • mybatisPlus自动填充更新时间的示例代码
  • MybatisPlus 插入或更新数据时自动填充更新数据解决方案
  • 在MyBatisPlus中使用@TableField完成字段自动填充的操作
  • Mybatisplus自动填充实现方式及代码示例
  • MybatisPlus 自动填充的实现
  • MyBatisPlus实现自动填充字段的实践
相关栏目:

用户点评