欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實例詳解MyBatis-plus自動填充功能

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

什么是自動填充

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

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

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

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

1.這個功能是做什么的呢?

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

2.下面用一個例子來學習這個功能

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

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

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

public enum FieldFill {
    DEFAULT,    //默認不進行處理
    INSERT,    //插入的時候填充字段
    UPDATE,    //更新的時候填充字段
    INSERT_UPDATE;    //插入和更新的時候填充字段
    
    private FieldFill() {    //構造方法
    }
}

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

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進行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("關羽");
    user.setAddress("上海");
    // user.setPassword("123456");    //將密碼進行注釋,如果插入填充生效的話,數(shù)據(jù)庫默認就填充了上面的88888888為password的值

    int result = userMapper.insert(user);

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

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

}

4.結果

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

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

相關文章

  • java遞歸實現(xiàn)漢諾塔步驟介紹

    java遞歸實現(xiàn)漢諾塔步驟介紹

    大家好,本篇文章主要講的是java遞歸實現(xiàn)漢諾塔步驟介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Java基于Base64實現(xiàn)編碼解碼圖片文件

    Java基于Base64實現(xiàn)編碼解碼圖片文件

    這篇文章主要介紹了Java基于Base64實現(xiàn)編碼解碼圖片文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 淺談Strut2如何對請求參數(shù)的封裝

    淺談Strut2如何對請求參數(shù)的封裝

    這篇文章主要介紹了淺談Strut2如何對請求參數(shù)的封裝,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 基于ArrayList源碼解析(基于JDK1.8)

    基于ArrayList源碼解析(基于JDK1.8)

    這篇文章主要介紹了關于ArrayList源碼解析(基于JDK1.8),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 使用Java實現(xiàn)大小寫轉換實例代碼

    使用Java實現(xiàn)大小寫轉換實例代碼

    最近在開發(fā)項目中遇到一個比較好用的方法,那就是對字符串中的字母大小進行轉換,所以下面這篇文章主要給大家介紹了關于如何使用Java實現(xiàn)大小寫轉換的相關資料,需要的朋友可以參考下
    2022-06-06
  • Java List分頁功能實現(xiàn)代碼實例

    Java List分頁功能實現(xiàn)代碼實例

    這篇文章主要介紹了Java List分頁功能實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • springboot集成JWT實現(xiàn)身份認證(權鑒)的方法步驟

    springboot集成JWT實現(xiàn)身份認證(權鑒)的方法步驟

    本文主要介紹了springboot集成JWT實現(xiàn)身份認證(權鑒)的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Java隨機密碼生成并和郵箱、手機號匹配

    Java隨機密碼生成并和郵箱、手機號匹配

    這篇文章主要介紹了Java隨機密碼生成并和郵箱、手機號匹配的相關資料,需要的朋友可以參考下
    2016-01-01
  • SpringMVC框架實現(xiàn)圖片上傳與下載

    SpringMVC框架實現(xiàn)圖片上傳與下載

    這篇文章主要為大家詳細介紹了SpringMVC框架實現(xiàn)圖片上傳與下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • java二路歸并排序示例分享

    java二路歸并排序示例分享

    這篇文章主要介紹了java二路歸并排序示例,需要的朋友可以參考下
    2014-02-02

最新評論