欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

MybatisPlus公共字段自动注入方法实现

2025年08月21日 Java
在pom.xml文件中引入mybatisplus坐标 <dependency> <groupid>com.baomidou&

在pom.xml文件中引入mybatisplus坐标

            <dependency>
                <groupid>com.baomidou</groupid>
                <artifactid>mybatis-plus-boot-starter</artifactid>
                <version>3.5.1</version>
            </dependency>

创建mybatisplushandler类

说明:通过继承mybatisplus中的metaobjecthandler类,然后重写insertfill和updatefill方法,通过setfieldvalbyname()方法设定公共字段,就可以在进行新增和更新操作前,对方法进行拦截

// mybatisplus 公共字段自动填充
@component
@slf4j
public class mybatisplushandler implements metaobjecthandler {
    @override
    public void insertfill(metaobject metaobject) {
        this.setfieldvalbyname("createtime", localdatetime.now(), metaobject);
        this.setfieldvalbyname("createuser", basecontext.getcurrentid(), metaobject);
    }

    @override
    public void updatefill(metaobject metaobject) {
        this.setfieldvalbyname("updatetime", localdatetime.now(), metaobject);
        this.setfieldvalbyname("updateuser", basecontext.getcurrentid(), metaobject);
    }
}

通过@tablename,@tablefield(fill = fieldfill.xx)注解指定目标实体类以及类中的公共字段

说明:新增类型公共字段就使用.insert,更新就使用.update

@data
@builder
@noargsconstructor
@allargsconstructor
@tablename("employee")
public class employee implements serializable {

    private static final long serialversionuid = 1l;


    @tableid(type = idtype.auto)
    private long id;

    private string username;

    private string name;

    private string password;

    private string phone;

    private string sex;

    private string idnumber;

    private integer status;

    @jsonformat(pattern = "yyyy-mm-dd hh:mm:ss")
    @tablefield(fill = fieldfill.insert)
    private localdatetime createtime;

    @jsonformat(pattern = "yyyy-mm-dd hh:mm:ss")
    @tablefield(fill = fieldfill.update)
    private localdatetime updatetime;

    @tablefield(fill = fieldfill.insert)
    private long createuser;

    @tablefield(fill = fieldfill.update)
    private long updateuser;

}

最后在调用新增或者更新方法时就能自动为公共字段赋值了。

到此这篇关于mybatisplus公共字段自动注入方法实现的文章就介绍到这了,更多相关mybatisplus公共字段自动注入内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!