MybatisPlus自動填充字段的操作
更新時間:2026年01月14日 09:28:12 作者:小憨憨的牛
文章介紹了使用MyBatis-Plus的`@TableField`注解和`MetaObjectHandler`接口實現數據庫表中自動填充時間、用戶信息等字段的功能,通過創(chuàng)建一個填充類來實現插入和更新操作時的自動填充
以自動填充時間為例
一般公司項目每個表都會有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.創(chuàng)建填充類 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.結果

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot中間件ORM框架實現案例詳解(Mybatis)
這篇文章主要介紹了SpringBoot中間件ORM框架實現案例詳解(Mybatis),本篇文章提煉出mybatis最經典、最精簡、最核心的代碼設計,來實現一個mini-mybatis,從而熟悉并掌握ORM框架的涉及實現,需要的朋友可以參考下2023-07-07
Spring Cloud 部署時使用 Kubernetes 作為注冊中心和配置中
Spring Cloud Kubernetes提供了使用Kubernete本地服務的Spring Cloud通用接口實現,這篇文章主要介紹了Spring Cloud 部署時如何使用 Kubernetes 作為注冊中心和配置中心,需要的朋友可以參考下2024-05-05
java開發(fā)CPU流水線與指令亂序執(zhí)行詳解
這篇文章主要為大家介紹了java開發(fā)CPU流水線與指令亂序執(zhí)行詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09

