首页 > 其他分享 >公共字段自动填充

公共字段自动填充

时间:2023-02-02 11:56:44浏览次数:48  
标签:setValue metaObject 填充 自动 公共 import

公共字段自动填充

在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间和修改人等字段。这些字段属于公共字段,也就是很多表中都有这些字段
能不能对于这些公共字段在某个地方统一处理,来简化开发呢?
答案就是使用Mybatis Plus提供的公共字段自动填充功能。

 

Mybatis Plus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。

实现步骤:
1、在实体类的属性上加入@TableField注解,指定自动填充的策略
2、按照框架要求编写元数据对象处理器,在此类中统一为公共字段赋值,此类需要实现MetaObjectHandler接口

实现步骤:
1、在实体类的属性上加入@TableField注解,指定自动填充的策略

 

2、按照框架要求编写元数据对象处理器,在此类中统一为公共字段赋值,此类需要实现MetaObjectHandler接口

package com.po.reggie.common;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 自定义元数据对象处理器
 */
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {
    /**
     * 插入操作,自动填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());

        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());
        //metaObject.setValue("createUser",BaseContext.getCurrentId());
       // metaObject.setValue("updateUser",BaseContext.getCurrentId());
    }

    /**
     * 更新操作,自动填充
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("公共字段自动填充[update]...");
        log.info(metaObject.toString());

        long id = Thread.currentThread().getId();
        log.info("线程id为:{}",id);

        metaObject.setValue("updateTime",LocalDateTime.now());
        //metaObject.setValue("updateUser",BaseContext.getCurrentId());
    }
}

 

标签:setValue,metaObject,填充,自动,公共,import
From: https://www.cnblogs.com/popopopopo/p/17085526.html

相关文章

  • github与jenkins相结合实现push代码后自动部署
    首先在settings里面设置  jenkins-token记得设置勾选  至此github设置完成jenkins  credentials:选择私钥复制进去,github上放置公钥  将之前的gith......
  • 微信小程序数字字母不自动换行
    只要在需要换行的view的标签wxss内添加 word-break:break-all;就可添加前:  添加后:  来源:https://www.cnblogs.com/White-night-emperor/p/16180255.html......
  • 自动驾驶世界的汽车后市场会是什么样
    自滴滴在上海走出自动驾驶商用化第一步之后,给大家一种自动驾驶世界离我们越来越近的感觉,自动驾驶又变成饭后闲聊的重点,大家憧憬着这一技术的普及,可以不用驾驶汽车,将更多的道......
  • jenkins+tomcat自动化部署
    https://www.cnblogs.com/zhangzhide/p/13982625.html 一、配置tomcattomcat版本:tomcat-9.0.39vim/usr/local/tomcat-9.0.39/conf/tomcat-users.xml<tom......
  • Jenkins自动构建项目打包并运行
    Jenkins版本为2.306登录Jenkins进入首页点击右侧[新建任务]选择[构建一个maven项目]输入任务名称点击[构建一个maven项目]点击[OK]General&源码管理描述:输入......
  • 通过TPT命令行自动化执行测试
    前言  随着DevOps、CI/CT在汽车行业日趋成熟和普及,TPT支持通过命令行的方式完成测试执行过程。TPT作为德国PikeTec公司的嵌入式软件模型测试工具,具有很高的扩展性和便......
  • 微力同步自动添加任务
    NS.batsetkey=B3AIFIMWWIC26W3MJIBHQQM53LUIDQAR3I4TH37N6VL373DJHGSUZPQsetdownpath="d:\down"ifnotexist%downpath%md%downpath%taskkill/f/imverysyncx64.......
  • jpa多数据源时Hibernate配置自动生成表不生效
    jpa配置多数据源教程很多,在Springboot2之后有一些变化,来看一下。application.yml如下:spring:application:name:t3ccdatasource:primary:jdbc-url:jdb......
  • php类自动装载、链式操作、魔术方法
    1、自动装载实例目录下有3个文件:index.phpload.phptests文件夹tests文件夹里有test1.php<?phpnamespaceTests;classTest1{staticfunctiontest(){......
  • 如何屏蔽 iOS 软件自动更新,去除更新通知和标记
    如何禁用iPhone、iPad软件自动更新。适用于iOS、iPadOS和watchOS,即iPhone、iPad和AppleWatch通用。请访问原文链接:https://sysin.org/blog/disable-ios-update/......