mybatisplus自动填充属性值的实现步骤
更新时间:2023年12月06日 11:54:05 作者:waterkid0
MyBatis-Plus提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,本文就来介绍一下如何使用,感兴趣的可以了解一下
MetaObjectHandler: 是mybatisplus提供的一个接口,这个接口定义了在执行插入和更新操作的时候的回调方法,允许你自定义实体对象的一些属性值,比如: createTime,createBy,updateTime,updateBy 等
他有两个核心方法:
insertFill: 在执行插入操作时,,用于填充实体对象的默认值,,标记了@TableField(fill=FieldFill.INSERT)的字段就会被填充updateFill:在执行更新操作时调用,用于填充实体对象的默认值
@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;
}
@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);
}
}
测试:
@Test
void contextLoads() {
int hehe = userMapper.insert(User.builder().username("hehe").build());
}到此这篇关于mybatisplus自动填充属性值的实现步骤的文章就介绍到这了,更多相关mybatisplus自动填充属性值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java程序开发中abstract 和 interface的区别详解
abstract class和interface在Java语言中都是用来进行抽象类。但是两者有什么区别呢,接下来小编给大家带来了abstract 和 interface的区别详解,感兴趣的朋友一起学习吧2016-06-06
java中synchronized Lock(本地同步)锁的8种情况
本文主要介绍了java中synchronized Lock(本地同步)锁的8种情况,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09
SpringSecurity oAuth2.0的四种模式(小结)
本文主要介绍了SpringSecurity oAuth2.0的四种模式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-02-02


最新评论