Mybatisplus自動(dòng)填充實(shí)現(xiàn)方式及代碼示例
數(shù)據(jù)庫(kù)表的創(chuàng)建時(shí)間、修改時(shí)間,這些個(gè)操作一遍都是自動(dòng)化完成的,我們不希望手動(dòng)更新。這時(shí)候自動(dòng)填充便可以發(fā)揮作用了。
1、方式一
數(shù)據(jù)庫(kù)級(jí)別(注意:不建議此方式,因?yàn)楣ぷ髦胁辉试S你修改數(shù)據(jù)庫(kù))
步驟
在表中新增字段create_time, update_time,給字段賦予默認(rèn)值,在需要更新的字段(update_time)選擇更新
在實(shí)體類(lèi)增加對(duì)應(yīng)屬性
2、方式二
代碼級(jí)別,建議使用
步驟
在實(shí)體類(lèi)需要自動(dòng)填充的屬性上加注解
package com.yl.bean;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 用戶實(shí)體類(lèi)
*/
@Data
@NoArgsConstructor
public class User implements Serializable {
@TableId(type=IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private String email;
@TableField(fill = FieldFill.INSERT )//插入數(shù)據(jù)時(shí)更新該字段
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)//插入和修改時(shí)更新該字段
private Date updateTime;
}
注意:數(shù)據(jù)庫(kù)要有對(duì)應(yīng)字段,不會(huì)自動(dòng)給你生成字段
編寫(xiě)處理器來(lái)處理自動(dòng)填充注解
package com.yl.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 自動(dòng)填充處理器實(shí)現(xiàn)類(lèi)
*/
@Slf4j//配置日志輸出,也可以不配置
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 插入元對(duì)象字段填充(用于插入時(shí)對(duì)公共字段的填充)
*
* @param metaObject 元對(duì)象
*/
@Override
public void insertFill(MetaObject metaObject) {
//日志輸出
log.info("start insert fill.....");
//字段填充
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
/**
* 更新元對(duì)象字段填充(用于更新時(shí)對(duì)公共字段的填充)
*
* @param metaObject 元對(duì)象
*/
@Override
public void updateFill(MetaObject metaObject) {
//日志輸出
log.info("start update fill.....");
//字段填充
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- MybatisPlus自動(dòng)填充時(shí)間的配置類(lèi)實(shí)現(xiàn)
- MyBatisPlus實(shí)現(xiàn)自動(dòng)填充字段的實(shí)踐
- mybatisplus實(shí)現(xiàn)自動(dòng)填充時(shí)間的項(xiàng)目實(shí)踐
- MybatisPlus自動(dòng)填充創(chuàng)建(更新)時(shí)間問(wèn)題
- mybatisplus自動(dòng)填充屬性值的實(shí)現(xiàn)步驟
- mybatisPlus自動(dòng)填充更新時(shí)間的示例代碼
- MybatisPlus 自動(dòng)填充的實(shí)現(xiàn)
- MybatisPlus字段自動(dòng)填充&樂(lè)觀鎖的方法實(shí)現(xiàn)
相關(guān)文章
Kafka使用Java客戶端進(jìn)行訪問(wèn)的示例代碼
本篇文章主要介紹了Kafka使用Java客戶端進(jìn)行訪問(wèn)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Elasticsearch算分優(yōu)化方案之rescore_query示例詳解
這篇文章主要為大家介紹了Elasticsearch算分優(yōu)化方案之rescore_query示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
SpringBoot多數(shù)據(jù)源讀寫(xiě)分離的自定義配置問(wèn)題及解決方法
這篇文章主要介紹了SpringBoot多數(shù)據(jù)源讀寫(xiě)分離的自定義配置,我們可以通過(guò)自定義配置數(shù)據(jù)庫(kù)配置類(lèi)來(lái)解決這個(gè)問(wèn)題,方式有很多,不同的業(yè)務(wù)采用的方式也不同,下面我簡(jiǎn)單的介紹我們項(xiàng)目的使用的方法2022-06-06
java仿百度假分頁(yè)代碼實(shí)現(xiàn)的詳解
這篇文章主要介紹了java仿百度假分頁(yè)代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
java圖像識(shí)別工具類(lèi)(ImageRecognitionUtils)使用實(shí)例詳解
這篇文章主要介紹了如何在Java中使用OpenCV進(jìn)行圖像識(shí)別,包括圖像加載、預(yù)處理、分類(lèi)、人臉檢測(cè)和特征提取等步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
IDEA 單元測(cè)試創(chuàng)建方法詳解(2020.03版本親測(cè))
這篇文章主要介紹了IDEA 單元測(cè)試創(chuàng)建方法詳解(2020.03版本親測(cè)),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

