开发者

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

开发者 https://www.devze.com 2025-08-22 10:24 出处:网络 作者: Sonryonha
目录在pom.XML文件中引入MyBATisPlus坐标创建MybatisPlusHandler类通过@TableName,@TableField(fill = FieldFill.XX)注解指定目标实体类以及类中的公共字段在pom.xml文件中引入MybatisPlus坐标
目录
  • 在pom.XML文件中引入MyBATisPlus坐标
  • 创建MybatisPlusHandler类
  • 通过@TableName,@TableField(fill = FieldFill.XX)注解指定目标实体类以及类中的公共字段

在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", http://www.devze.comLocalDateTime.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 LocalDatpythoneTime createTime;
android
    @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;

}

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

到此这篇关于MybatisPlus公共字段自动注入方法实现的文章就介绍到这了,更多相关MybatisPlus公共字段自动注入内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号