目錄
- 一、代碼展示
- 二、代碼解讀
一、代碼展示
package com.minster.yanapi.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {//實現MetaObjectHandler//配置自動填充 攔截器//insert操作時填充方法@Overridepublic void insertFill(MetaObject metaObject) {this.setFieldValByName("createTime", new Date(), metaObject); //創建時間this.setFieldValByName("updateTime", new Date(), metaObject); //創建時間this.setFieldValByName("avatar","https://pic4.zhimg.com/v2-53a632ca6e89dcdc31b31b3d193fe55b_r.jpg",metaObject);
// this.setFieldValByName("status",3,metaObject);}//update操作時填充方法@Overridepublic void updateFill(MetaObject metaObject) { //填充 更新時間this.setFieldValByName("updateTime", new Date(), metaObject);}
}
二、代碼解讀
這段代碼是一個 MyBatis-Plus 框架中的自定義元對象處理器(MetaObjectHandler)。主要用于在執行數據庫操作時,自動填充一些字段的值,例如創建時間和更新時間。
-
包結構和導入:
com.minster.yanapi.handler
是代碼所在的包路徑。com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
是 MyBatis-Plus 框架提供的元對象處理器接口。org.apache.ibatis.reflection.MetaObject
是 MyBatis 框架提供的反射工具類。org.springframework.stereotype.Component
是 Spring 框架的注解,用于聲明該類是一個 Spring 組件。
-
類聲明:
MyMetaObjectHandler
類實現了MetaObjectHandler
接口。- 使用了
@Component
注解,將該類標記為一個 Spring 組件,使其能夠被 Spring 容器掃描并進行管理。
-
自動填充方法:
insertFill
方法用于在執行插入操作時進行自動填充。通過調用setFieldValByName
方法設置字段的值。createTime
字段被填充為當前的日期時間。updateTime
字段同樣被填充為當前的日期時間。avatar
字段被填充為固定的圖片鏈接。- 注釋中提到的
status
字段被注釋掉,沒有進行填充。
updateFill
方法用于在執行更新操作時進行自動填充。只填充了updateTime
字段,將其設置為當前的日期時間。
-
總結:
- 該類主要通過實現 MyBatis-Plus 的
MetaObjectHandler
接口,實現了插入和更新時的自動填充功能,為指定的字段賦予特定的值,簡化了數據庫操作中的字段填充過程。 - 在 Spring 中通過
@Component
注解,將其納入 Spring 容器進行管理。
- 該類主要通過實現 MyBatis-Plus 的