亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

簡介

說明

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

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

配置(非必須)

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

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

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

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

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

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

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

entity

實(shí)體類對應(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ù)庫

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

測試

插入測試

插入時,sql語句不會涉及邏輯刪除的字段。

查詢、修改測試

使用MP邏輯刪除的功能之后,執(zhí)行查詢、修改的方法,MP會為我們自動加上未刪除的條件。自定義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

刪除測試

(執(zhí)行的SQL語句是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á)式來排除某些查詢字段,只是通過注解的方式更方便。

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

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

相關(guān)文章

  • Java Graphics實(shí)現(xiàn)界面顯示文字并換行

    Java Graphics實(shí)現(xiàn)界面顯示文字并換行

    Java中Graphics類提供了一些基本的幾何圖形繪制方法,本文將利用Graphics實(shí)現(xiàn)界面顯示文字并換行效果,感興趣的小伙伴可以動手嘗試一下
    2022-08-08
  • 如何通過Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    如何通過Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    在Java中,將PDF文件轉(zhuǎn)換為高質(zhì)量的圖片可以使用不同的庫,其中最常用的庫之一是?Apache?PDFBox,下面我們就來看看這個庫的具體使用吧
    2024-10-10
  • springboot+mybatis-plus實(shí)現(xiàn)自動建表的示例

    springboot+mybatis-plus實(shí)現(xiàn)自動建表的示例

    本文主要介紹了springboot+mybatis-plus實(shí)現(xiàn)自動建表的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Java面向?qū)ο蟮姆庋b特征深度解析

    Java面向?qū)ο蟮姆庋b特征深度解析

    在面向?qū)ο蟪淌皆O(shè)計(jì)方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問
    2021-10-10
  • JAVA如何獲取客戶端IP地址和MAC地址

    JAVA如何獲取客戶端IP地址和MAC地址

    本篇文章主要介紹了JAVA如何獲取客戶端IP地址和MAC地址非常具有實(shí)用價值,這里整理了詳細(xì)的代碼,需要的朋友可以參考下
    2017-08-08
  • 大模型chat/completions和completions區(qū)別解析

    大模型chat/completions和completions區(qū)別解析

    OpenAI的completions和chat/completions是兩個不同的端點(diǎn),completions用于單次文本補(bǔ)全,而chat/completions用于多輪對話生成,選擇哪個端點(diǎn)取決于你的具體需求,本文介紹大模型chat/completions和completions區(qū)別,感興趣的朋友一起看看吧
    2025-03-03
  • 如何實(shí)現(xiàn)Java線程安全問題

    如何實(shí)現(xiàn)Java線程安全問題

    這篇文章主要介紹了如何實(shí)現(xiàn)Java線程安全問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Spring整合JUnit詳解

    Spring整合JUnit詳解

    Spring?是目前主流的?Java?Web?開發(fā)框架,是?Java?世界最為成功的框架。該框架是一個輕量級的開源框架,這篇文章主要介紹如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit,感興趣的同學(xué)可以參考一下
    2023-04-04
  • java發(fā)送http請求并獲取狀態(tài)碼的簡單實(shí)例

    java發(fā)送http請求并獲取狀態(tài)碼的簡單實(shí)例

    下面小編就為大家?guī)硪黄猨ava發(fā)送http請求并獲取狀態(tài)碼的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • java 8 lambda表達(dá)式中的異常處理操作

    java 8 lambda表達(dá)式中的異常處理操作

    這篇文章主要介紹了java 8 lambda表達(dá)式中的異常處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論