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

Mybatis-Plus邏輯刪除的用法詳解

 更新時(shí)間:2023年07月06日 10:00:25   作者:程序猿小張丶  
這篇文章主要為大家詳細(xì)介紹了Mybatis-Plus 邏輯刪除的用法,文中有詳細(xì)的代碼示例,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

簡(jiǎn)介

說(shuō)明

本文介紹Mybatis-Plus的邏輯刪除的用法。

刪除功能是項(xiàng)目中經(jīng)常見(jiàn)到的需求。比如:需要?jiǎng)h除一個(gè)訂單,一般不會(huì)把實(shí)際數(shù)據(jù)刪除,而是邏輯刪除。一般表中有一個(gè)is_deleted字段標(biāo)識(shí)該用戶是否被刪除,0 表示未刪除 1 表示已刪除。

配置(非必須)

配置刪除未刪除的狀態(tài)碼

配置未刪除、已刪除分別標(biāo)識(shí)的狀態(tài)碼是什么,這里采用的yml格式。

mybatis-plus:
  global-config:
    db-config:
      # 1 代表已刪除。默認(rèn)是1。也可寫(xiě)為字段名,如:id,這樣刪除時(shí)會(huì)將id的值寫(xiě)到邏輯刪除字段
      logic-delete-value: 1
      # 0 代表未刪除。默認(rèn)是0
      logic-not-delete-value: 0

全局配置字段名(可不配置)

若項(xiàng)目代碼比較規(guī)范,所有表的邏輯刪除字段使用相同的名稱(比如:deleted_flag),我們可以在 application.properties 中添加如下統(tǒng)一的配置,這樣對(duì)應(yīng)的實(shí)體類字段上就不需要再添加 @TableLogic 注解了:

注意:如果設(shè)置了全局邏輯刪除字段值,實(shí)體類上仍然有 @TableLogic 則以實(shí)體上的為準(zhǔn),忽略全局。

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted_flag

entity

實(shí)體類對(duì)應(yīng)的字段上加上注解@TableLogic

@Data
@TableName("t_user")
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableLogic
    private String deleted;
}

數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)deleted列,設(shè)置為tinyint類型,長(zhǎng)度為1

測(cè)試

插入測(cè)試

插入時(shí),sql語(yǔ)句不會(huì)涉及邏輯刪除的字段。

查詢、修改測(cè)試

使用MP邏輯刪除的功能之后,執(zhí)行查詢、修改的方法,MP會(huì)為我們自動(dòng)加上未刪除的條件。自定義sql除外

    @Test
    public void select(){
        List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().eq(User::getAge, 18));
        users.forEach(System.out::println);
    }
    @Test
    public void update(){
        User user = new User();
        user.setEmail("Test@email.com");
        int update = userMapper.update(user, Wrappers.<User>lambdaQuery().eq(User::getAge, 18));
        System.out.println(update);
    }
DEBUG==>  Preparing: SELECT id,login_name,name,password,email,salt,sex,age,phone,user_type,status,organization_id,create_time,is_delete FROM sys_user WHERE deleted='0' AND age = ? 
DEBUG==> Parameters: 18(Integer)
DEBUG<==      Total: 0
DEBUG==>  Preparing: UPDATE sys_user SET email=? WHERE deleted='0' AND age = ? 
DEBUG==> Parameters: Test@email.com(String), 18(Integer)
DEBUG<==    Updates: 0

刪除測(cè)試

(執(zhí)行的SQL語(yǔ)句是UPDATE)

@Test
    public void delete() {
        int i = userMapper.deleteById(1);
        System.out.println(i);
    }
DEBUG==>  Preparing: UPDATE sys_user SET is_delete='1' WHERE id=? AND deleted='0' 
DEBUG==> Parameters: 1(Integer)
DEBUG<==    Updates: 1

不查詢is_deleted字段

@TableField(select = false)即可。還可使用Wrapper的select表達(dá)式來(lái)排除某些查詢字段,只是通過(guò)注解的方式更方便。

    @TableLogic
    @TableField(select = false)
    private String deleted;

到此這篇關(guān)于Mybatis-Plus邏輯刪除的用法詳解的文章就介紹到這了,更多相關(guān)Mybatis-Plus邏輯刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA指定Maven的settings不生效問(wèn)題的解決方法

    IDEA指定Maven的settings不生效問(wèn)題的解決方法

    在IntelliJ IDEA中手動(dòng)指定Maven settings文件未生效,主要因用戶目錄和全局配置優(yōu)先級(jí)高于IDEA指定的文件,下面就來(lái)介紹一下該問(wèn)題的解決,感興趣的可以了解一下
    2025-08-08
  • Java中try-catch的使用及注意細(xì)節(jié)

    Java中try-catch的使用及注意細(xì)節(jié)

    現(xiàn)在有很多的語(yǔ)言都支持try-catch,比如常見(jiàn)的就是c++,java等,這篇文章主要給大家介紹了關(guān)于Java中try-catch的使用及注意細(xì)節(jié)的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕節(jié)快樂(lè))

    java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕節(jié)快樂(lè))

    這篇文章主要介紹了java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕節(jié)快樂(lè)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • java實(shí)現(xiàn)自動(dòng)售貨機(jī)

    java實(shí)現(xiàn)自動(dòng)售貨機(jī)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)自動(dòng)售貨機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java線程池使用AbortPolicy策略

    Java線程池使用AbortPolicy策略

    這篇文章主要介紹了?Java線程池使用AbortPolicy策略,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-06-06
  • springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)

    springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)

    這篇文章主要介紹了springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java構(gòu)造方法的互相調(diào)用方式

    java構(gòu)造方法的互相調(diào)用方式

    這篇文章主要介紹了java構(gòu)造方法的互相調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Go&java算法之最大數(shù)示例詳解

    Go&java算法之最大數(shù)示例詳解

    這篇文章主要為大家介紹了Go&java算法之最大數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 簡(jiǎn)單理解遵循接口隔離原則的Java設(shè)計(jì)模式編程

    簡(jiǎn)單理解遵循接口隔離原則的Java設(shè)計(jì)模式編程

    這篇文章主要介紹了遵循接口隔離原則的Java設(shè)計(jì)模式編程,針對(duì)Java編程中interface接口方面的編寫(xiě)進(jìn)行約束,需要的朋友可以參考下
    2016-02-02
  • mybatis-plus支持null字段全量更新的兩種方法

    mybatis-plus支持null字段全量更新的兩種方法

    本文主要介紹了mybatis-plus支持null字段全量更新的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論

平泉县| 庐江县| 株洲市| 哈密市| 阿合奇县| 武穴市| 高阳县| 莲花县| 简阳市| 措勤县| 宜兰县| 泰兴市| 临高县| 永福县| 平武县| 广安市| 什邡市| 广东省| 冷水江市| 陆良县| 扎囊县| 陕西省| 临夏市| 韩城市| 平潭县| 连江县| 沙雅县| 乳山市| 上虞市| 麻阳| 金昌市| 高州市| 山东省| 运城市| 湄潭县| 黄骅市| 芒康县| 台安县| 天全县| 广安市| 丰都县|