MybatisPlus自動(dòng)填充字段的操作
以自動(dòng)填充時(shí)間為例
一般公司項(xiàng)目每個(gè)表都會(huì)有create_time,update_time,create_userCode,create_userName等字段,用來記錄數(shù)據(jù)的基本信息。
mybatis-plus的TableField注解就很好的實(shí)現(xiàn)了這個(gè)功能,不需要每次存數(shù)據(jù)的時(shí)候給這幾個(gè)字段賦值,而是自動(dòng)填充。
1.數(shù)據(jù)庫(kù)字段

2.實(shí)體類對(duì)應(yīng)字段
//增加實(shí)現(xiàn)
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
//增加或修改實(shí)現(xiàn)
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private Date updateTime;@TableField注解
value:對(duì)應(yīng)的數(shù)據(jù)庫(kù)字段fill: 填充模式(用于在插入和更新操作時(shí)自動(dòng)填充字段的值 )
3.創(chuàng)建填充類 MyMetaObjectHandler
該類要實(shí)現(xiàn)MetaObjectHandler接口,并實(shí)現(xiàn)兩個(gè)方法,一個(gè)記錄保存操作,一個(gè)記錄修改操作,在這兩個(gè)方法里進(jìn)行數(shù)據(jù)的填充。
/**
* @Author dhp
* @create 2025-02-24 15:35
*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//根據(jù)名字設(shè)置屬性值
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.測(cè)試保存操作
@Test
void contextLoads() {
User user = new User();
user.setUserCode("123");
user.setUserName("張三");
user.setAddress("山東濰坊");
user.setAge(25);
//不進(jìn)行手動(dòng)賦值
// user.setCreateTime(new Date());
// user.setUpdateTime(new Date());
userService.save(user);
}5.結(jié)果

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中間件ORM框架實(shí)現(xiàn)案例詳解(Mybatis)
這篇文章主要介紹了SpringBoot中間件ORM框架實(shí)現(xiàn)案例詳解(Mybatis),本篇文章提煉出mybatis最經(jīng)典、最精簡(jiǎn)、最核心的代碼設(shè)計(jì),來實(shí)現(xiàn)一個(gè)mini-mybatis,從而熟悉并掌握ORM框架的涉及實(shí)現(xiàn),需要的朋友可以參考下2023-07-07
Java?設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式是屬于創(chuàng)建型模式,又叫做靜態(tài)工廠方法(Static Factory Method)模式,但不屬于23種GOF設(shè)計(jì)模式之一。簡(jiǎn)單工廠模式是由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。簡(jiǎn)單工廠模式是工廠模式家族中最簡(jiǎn)單實(shí)用的模式,可以理解為是不同工廠模式的一個(gè)特殊實(shí)現(xiàn)2022-03-03
java實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天功能,使用UDP模式編寫一個(gè)聊天程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Spring Cloud 部署時(shí)使用 Kubernetes 作為注冊(cè)中心和配置中
Spring Cloud Kubernetes提供了使用Kubernete本地服務(wù)的Spring Cloud通用接口實(shí)現(xiàn),這篇文章主要介紹了Spring Cloud 部署時(shí)如何使用 Kubernetes 作為注冊(cè)中心和配置中心,需要的朋友可以參考下2024-05-05
java開發(fā)CPU流水線與指令亂序執(zhí)行詳解
這篇文章主要為大家介紹了java開發(fā)CPU流水線與指令亂序執(zhí)行詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
idea中導(dǎo)入別人的springboot項(xiàng)目的方法(圖文)
這篇文章主要介紹了idea中導(dǎo)入別人的springboot項(xiàng)目的方法(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
SpringBoot JSON全局日期格式轉(zhuǎn)換器實(shí)現(xiàn)方式
這篇文章主要介紹了SpringBoot JSON全局日期格式轉(zhuǎn)換器,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04

