当前位置: 代码网 > it编程>编程语言>Java > mybatisplus实现自动填充时间的项目实践

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

2024年10月18日 Java 我要评论
数据库表中的字段创建时间 (createtime)更新时间 (updatetime)每次 增删改查的时候,需要通过对entity的字段(createtime,updatetime)进行set设置,但是

数据库表中的字段

  • 创建时间 (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 自动填充时间内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com