最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)例詳解MyBatis-plus自動填充功能

 更新時(shí)間:2022年01月24日 10:26:38   作者:程序員hg  
每次對數(shù)據(jù)進(jìn)行新增、刪除、修改時(shí)都需要對這些字段進(jìn)行設(shè)置,雖然新增時(shí)間和修改時(shí)間可以使用數(shù)據(jù)庫的時(shí)間,但是新增人和修改人就不能使用這樣的功能,下面小編給大家介紹下MyBatis-plus自動填充功能的實(shí)例代碼,感興趣的朋友一起看看吧

什么是自動填充

有些表中會有更新時(shí)間、創(chuàng)建時(shí)間、更新人或者創(chuàng)建人這些字段。

每次對數(shù)據(jù)進(jìn)行新增、刪除、修改時(shí)都需要對這些字段進(jìn)行設(shè)置。傳統(tǒng)的做法是在進(jìn)行這些操作前,對Entity的字段進(jìn)行set設(shè)置,然后再進(jìn)行操作。這種做法不僅容易忘記導(dǎo)致出錯(cuò)、而且代碼會顯得特別冗余。

雖然新增時(shí)間和修改時(shí)間可以使用數(shù)據(jù)庫的時(shí)間,但是新增人和修改人就不能使用這樣的功能。

所以MP就提供自動填充的功能,幫助自定設(shè)置這些字段的值,提升開發(fā)效率,代碼也會顯得特別優(yōu)雅。

1.這個(gè)功能是做什么的呢?

有的時(shí)候,我們可能有這樣子的需求,在插入(insert)或者更新數(shù)據(jù)(update)的時(shí)候可以自動填充數(shù)據(jù),比如密碼,version等。在mp中為我們提供了這種功能,非常的方便!

2.下面用一個(gè)例子來學(xué)習(xí)這個(gè)功能

2.1添加注解@TableField(),這個(gè)注解里面的fill提供了填充的功能

@TableField(fill = FieldFill.INSERT) //插入時(shí)進(jìn)行填充
private String password;

FirledFill提供了以下幾種模式,根據(jù)情況可以自己進(jìn)行選擇

public enum FieldFill {
    DEFAULT,    //默認(rèn)不進(jìn)行處理
    INSERT,    //插入的時(shí)候填充字段
    UPDATE,    //更新的時(shí)候填充字段
    INSERT_UPDATE;    //插入和更新的時(shí)候填充字段
    
    private FieldFill() {    //構(gòu)造方法
    }
}

2.2編寫MyMetaObjectorHandler,實(shí)現(xiàn)源對象字段填充控制器抽象類,根據(jù)需求實(shí)不同的方法,這里是實(shí)現(xiàn)一個(gè)插入填充的方法

public class MyMetaObjectHandler implements MetaObjectHandler {

    //插入填充
    @Override
    public void insertFill(MetaObject metaObject) {
        Object password = getFieldValByName("password", metaObject);
        if (ObjectUtils.isNull(password)) {
            setFieldValByName("password", "88888888", metaObject);
        }
    }

    //更新填充
    @Override
    public void updateFill(MetaObject metaObject) {

    }
}

2.3將自定義的MyObjectHandler進(jìn)行bean注入MybatisPlusConfig中

@Configuration
public class MybatisPlusConfig {

@Bean   //插入填充
public MyMetaObjectHandler myMetaObjectHandler(){
    return new MyMetaObjectHandler();
    }
}

3.測試

@Test
public void test() {
    User user = new User();
    user.setAge(29);
    user.setEmail("test@163.com");
    user.setUserName("guanyu");
    user.setName("關(guān)羽");
    user.setAddress("上海");
    // user.setPassword("123456");    //將密碼進(jìn)行注釋,如果插入填充生效的話,數(shù)據(jù)庫默認(rèn)就填充了上面的88888888為password的值

    int result = userMapper.insert(user);

    System.out.println("result=" + result);

    System.out.println(user.getId());

}

4.結(jié)果

綜上所示,自動填充成功。

到此這篇關(guān)于MyBatis-plus自動填充功能的文章就介紹到這了,更多相關(guān)MyBatis-plus自動填充內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java啟動jar包設(shè)置啟動參數(shù)的實(shí)現(xiàn)

    java啟動jar包設(shè)置啟動參數(shù)的實(shí)現(xiàn)

    本文主要介紹了java啟動jar包設(shè)置啟動參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring溫故而知新系列教程之AOP代理

    Spring溫故而知新系列教程之AOP代理

    Spring AOP 是代理模式的應(yīng)用,可以使用JDK提供的Proxy類或通過字節(jié)碼增強(qiáng)來實(shí)現(xiàn)。下面這篇文章主要給大家介紹了關(guān)于Spring之AOP代理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Java中byte[]、String、Hex字符串等轉(zhuǎn)換的方法

    Java中byte[]、String、Hex字符串等轉(zhuǎn)換的方法

    這篇文章主要介紹了Java中byte[]、String、Hex字符串等轉(zhuǎn)換的方法,代碼很簡單,需要的朋友可以參考下
    2018-05-05
  • Spring如何使用PropertyPlaceholderConfigurer讀取文件

    Spring如何使用PropertyPlaceholderConfigurer讀取文件

    這篇文章主要介紹了Spring如何使用PropertyPlaceholderConfigurer讀取文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • MyBatis3用log4j在控制臺輸出SQL的方法示例

    MyBatis3用log4j在控制臺輸出SQL的方法示例

    本篇文章主要介紹了MyBatis3用log4j在控制臺輸出SQL的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • springboot啟動掃描不到dao層接口的解決方案

    springboot啟動掃描不到dao層接口的解決方案

    這篇文章主要介紹了springboot啟動掃描不到dao層接口的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot?filter配置多個(gè)時(shí),執(zhí)行順序問題

    springboot?filter配置多個(gè)時(shí),執(zhí)行順序問題

    這篇文章主要介紹了springboot?filter配置多個(gè)時(shí),執(zhí)行順序問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • springmvc分層領(lǐng)域模型概念詳解

    springmvc分層領(lǐng)域模型概念詳解

    本文核心為分層領(lǐng)域模型(VO , PO , BO, DAO ,POJO等)概念的個(gè)人理解,結(jié)合springmvc淺談分層領(lǐng)域模型的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • SpringBoot整合Spring?Boot?Admin實(shí)現(xiàn)服務(wù)監(jiān)控的方法

    SpringBoot整合Spring?Boot?Admin實(shí)現(xiàn)服務(wù)監(jiān)控的方法

    這篇文章主要介紹了SpringBoot整合Spring?Boot?Admin實(shí)現(xiàn)服務(wù)監(jiān)控,內(nèi)容包括Server端服務(wù)開發(fā),Client端服務(wù)開發(fā)其中Spring Boot Admin還可以對其監(jiān)控的服務(wù)提供告警功能,如服務(wù)宕機(jī)時(shí),可以及時(shí)以郵件方式通知運(yùn)維人員,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測試

    Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測試

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測試,企業(yè)微信回調(diào)是指企業(yè)微信通過HTTP?POST請求將業(yè)務(wù)數(shù)據(jù)回調(diào)到指定的URL上,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-09-09

最新評論

乌拉特后旗| 晋江市| 鹤峰县| 呼玛县| 盐亭县| 陇川县| 奉节县| 天峨县| 勐海县| 桃园市| 榆社县| 亚东县| 桂阳县| 缙云县| 凤城市| 满洲里市| 黄骅市| 桐柏县| 罗田县| 隆回县| 大渡口区| 旌德县| 黄浦区| 德格县| 隆化县| 庆元县| 常德市| 泽库县| 定日县| 凉城县| 西乌珠穆沁旗| 报价| 七台河市| 年辖:市辖区| 比如县| 镇雄县| 达孜县| 宁强县| 金沙县| 钟山县| 高青县|