mybatis-plus填充功能,自动设置值

发布于:2023-09-09 ⋅ 阅读:(92) ⋅ 点赞:(0)

1、引入依赖

        <!--        mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

2、编写entity

 @Data
@AllArgsConstructor
@TableName("user")
@NoArgsConstructor
public class User  {
/**
     * 创建人名称
     */
    @TableField(fill = FieldFill.INSERT)
    private String createUserName;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 修改人名称
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateUserName;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

3、编写处理器


@Component
@Slf4j
public class AutoInsertMetaObjectHandler  implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        //setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject)
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("createUserName","测试1",metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
        this.setFieldValByName("updateUserName","测试1",metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start insert update ....");
        this.setFieldValByName("updateTime",new Date(),metaObject);
        this.setFieldValByName("updateUserName", "测试2",metaObject);
    }

}

4、测试

官网:自动填充功能 | MyBatis-Plus (baomidou.com)