mybatisplus自动填充属性值

MetaObjectHandler: 是mybatisplus提供的一个接口,,,这个接口定义了在执行插入和更新操作的时候的回调方法,,,允许你自定义实体对象的一些属性值,,比如: createTime,createBy,updateTime,updateBy 等

他有两个核心方法:

  • insertFill : 在执行插入操作时,,用于填充实体对象的默认值,,标记了@TableField(fill=FieldFill.INSERT) 的字段就会被填充
  • updateFill :在执行更新操作时调用,用于填充实体对象的默认值
java 复制代码
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "cc_user")
public class User {

    private Integer id;
    private String username;
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    private String updateBy;
    private Date createTime;
    private Date updateTime;
}
java 复制代码
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        System.out.println("插入填充方法被调用");
        this.setFieldValByName("createBy","waterkid",metaObject);
        this.setFieldValByName("updateBy","cc",metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        System.out.println("插入填充方法被调用");
        this.setFieldValByName("createBy","waterkid",metaObject);
        this.setFieldValByName("updateBy","cc",metaObject);
    }
}

测试:

java 复制代码
    @Test
    void contextLoads() {
   
        int hehe = userMapper.insert(User.builder().username("hehe").build());
    }
相关推荐
LSL666_7 天前
mybatisplus入门案例
数据库·mysql·mybatisplus
fanruitian8 天前
springboot-mybatisplus-demo
spring boot·后端·mybatis·mybatisplus
草原印象13 天前
Spring Boot Spring MVC MyBatis MyBatis Plus框架编写项目实战案例
spring boot·spring·mybatis·springmvc·mybatisplus
tgethe15 天前
MybatisPlus基础部分详解(中篇)
java·spring boot·mybatisplus
tgethe15 天前
MybatisPlus基础部分详解(上篇)
java·spring boot·mybatisplus
tgethe15 天前
MybatisPlus基础部分详解(下篇)
java·spring boot·mybatisplus
小葱拌豆腐~2 个月前
ShardingJDBC整合MybatisPlus的动态数据源
mybatisplus·动态数据源·shardingjdbc
色空大师2 个月前
【mybatisPlus详解】
java·mybatis·mybatisplus
Roye_ack2 个月前
【黑马点评 - 实战篇01】Redis项目实战(Windows安装Redis6.2.6 + 发送验证码 + 短信验证码登录注册 + 拦截器链 - 登录校验)
数据库·spring boot·redis·缓存·mybatisplus·session·黑马点评
sniper_fandc2 个月前
MybatisPlus和pagehelper分页冲突—关于jsqlparser、pagehelper、MybatisPlus三者的版本兼容问题
mybatis·mybatisplus