MybatisPlus自动填充字段的操作
以自动填充时间为例
一般公司项目每个表都会有create_time,update_time,create_userCode,create_userName等字段,用来记录数据的基本信息。
mybatis-plus的TableField注解就很好的实现了这个功能,不需要每次存数据的时候给这几个字段赋值,而是自动填充。
1.数据库字段

2.实体类对应字段
//增加实现
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
//增加或修改实现
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private Date updateTime;@TableField注解
value:对应的数据库字段fill: 填充模式(用于在插入和更新操作时自动填充字段的值 )
3.创建填充类 MyMetaObjectHandler
该类要实现MetaObjectHandler接口,并实现两个方法,一个记录保存操作,一个记录修改操作,在这两个方法里进行数据的填充。
/**
* @Author dhp
* @create 2025-02-24 15:35
*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//根据名字设置属性值
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}4.测试保存操作
@Test
void contextLoads() {
User user = new User();
user.setUserCode("123");
user.setUserName("张三");
user.setAddress("山东潍坊");
user.setAge(25);
//不进行手动赋值
// user.setCreateTime(new Date());
// user.setUpdateTime(new Date());
userService.save(user);
}5.结果

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
spring配置文件中util:properties和context:property-placeholder用法
这篇文章主要介绍了spring配置文件中util:properties和context:property-placeholder用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01
java自带命令行工具jmap、jhat与jinfo的使用实例代码详解
本篇文章主要通过代码实例对java自带命令行工具jmap、jhat与jinfo的使用做出了详解,需要的朋友可以参考下2017-04-04
ActiveMQ基于zookeeper的主从(levelDB Master/Slave)搭建
这篇文章主要介绍了ActiveMQ基于zookeeper的主从levelDB Master/Slave搭建,以及Spring-boot下的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08


最新评论