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

MyBatis-Plus中的邏輯刪除使用詳解

 更新時(shí)間:2022年12月12日 10:11:52   作者:心態(tài)還需努力呀  
開發(fā)系統(tǒng)時(shí),有時(shí)候在實(shí)現(xiàn)功能時(shí),刪除操作需要實(shí)現(xiàn)邏輯刪除就是將數(shù)據(jù)標(biāo)記為刪除,而并非真的物理刪除(非DELETE操作),查詢時(shí)需要攜帶狀態(tài)條件,確保被標(biāo)記的數(shù)據(jù)不被查詢到。這樣做的目的就是避免數(shù)據(jù)被真正的刪除

前言

開發(fā)系統(tǒng)時(shí),有時(shí)候在實(shí)現(xiàn)功能時(shí),刪除操作需要實(shí)現(xiàn)邏輯刪除就是將數(shù)據(jù)標(biāo)記為刪除,而并非真的物理刪除(非DELETE操作),查詢時(shí)需要攜帶狀態(tài)條件,確保被標(biāo)記的數(shù)據(jù)不被查詢到。這樣做的目的就是避免數(shù)據(jù)被真正的刪除。

MP就提供了這樣的功能,方便我們使用,接下來我們一起學(xué)習(xí)下~

一、修改表結(jié)構(gòu)

為user表增加deleted字段,用于表示數(shù)據(jù)是否被刪除,1代表刪除,0代表未刪除。sql代碼如下

USE study;
ALTER TABLE user 
ADD COLUMN deleted int(1) NULL DEFAULT 0 COMMENT '1代表刪除,0代表未刪除' AFTER user_status;

添加后的效果圖展示:

二、User實(shí)體中添加屬性

增加deleted屬性并且添加@TableLogic注解

//標(biāo)記字段
    @TableLogic
    private Integer deleted;

三、配置

在application.properties下配置刪除字段的標(biāo)記,默認(rèn)就是刪除為1,未刪除就為0。這個(gè)具體值大家可以修改,按開發(fā)要求即可。要是就是用默認(rèn)值的話其實(shí)不配置下面的代碼也可以執(zhí)行的。

#刪除標(biāo)記為1
mybatis-plus.global-config.db-config.logic-delete-value=1
#未刪除標(biāo)記為0
mybatis-plus.global-config.db-config.logic-not-delete-value=0

四、測(cè)試

編寫測(cè)試類,在測(cè)試類下編寫testDeleteById方法,刪除id為12的用戶信息。刪除成功后查詢表中的數(shù)據(jù)查看是否能查詢到id為12的結(jié)果。

/**
     * 刪除操作
     * */
    //根據(jù)id刪除
    //int deleteById(Serializable id);
    @Test
    public void testDeleteById() {
        int result = this.userMapper.deleteById(12);
        if(result>0){
            testSelectList();
            System.out.println("刪除成功!");
        }else {
            System.out.println("刪除失??!");
        }
    }

效果圖:

1. 查看日志會(huì)發(fā)現(xiàn),第一個(gè)刪除生成的sql代碼其實(shí)是修改,只是將deleted字段等于0的條件下設(shè)置了deleted字段標(biāo)記為1。

2. 查看日志,第二個(gè)查詢的結(jié)果自動(dòng)生成的sql代碼中也自動(dòng)添加了條件為deleted字段等于0。如下如圖所示。

3. 通過查詢輸出的結(jié)果可發(fā)現(xiàn)查不到id為12的數(shù)據(jù)。如下圖所示:

 4. 我們從數(shù)據(jù)庫(kù)中查看數(shù)據(jù)表的信息,會(huì)發(fā)現(xiàn)id為12的數(shù)據(jù)deleted字段已經(jīng)被標(biāo)記為1。所以不會(huì)查詢到,但本身的數(shù)據(jù)沒有真正的被刪除(還存在數(shù)據(jù)庫(kù)中)。

總結(jié)

在實(shí)際的開發(fā)中也是這樣的,當(dāng)用戶點(diǎn)完刪除數(shù)據(jù)信息后以為刪除掉了,但實(shí)際上沒你們想的那么簡(jiǎn)單。你的數(shù)據(jù)在數(shù)據(jù)庫(kù)中不會(huì)輕易的刪除掉的。只是不會(huì)顯示在用戶頁面而已。大多數(shù)的開發(fā)其實(shí)都是這樣,所以說該知識(shí)點(diǎn)也是很重要的。MP簡(jiǎn)化了我們的開發(fā),的確可以體會(huì)到~

這就是邏輯刪除的用法。做一個(gè)項(xiàng)目練練手就會(huì)了,相對(duì)而言比較好掌握。大家加油學(xué)起來~

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

相關(guān)文章

  • Springboot 整合RabbitMq(用心看完這一篇就夠了)

    Springboot 整合RabbitMq(用心看完這一篇就夠了)

    這篇文章主要介紹了Springboot 整合RabbitMq(用心看完這一篇就夠了),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟

    java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟

    這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)html轉(zhuǎn)pdf方法的相關(guān)資料,要將HTML轉(zhuǎn)換成PDF,我們需要借助Java中的第三方庫(kù),文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • java long轉(zhuǎn)String +Codeforces110A案例

    java long轉(zhuǎn)String +Codeforces110A案例

    這篇文章主要介紹了java long轉(zhuǎn)String +Codeforces110A案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)訓(xùn)練

    劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)訓(xùn)練

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說明

    mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說明

    這篇文章主要介紹了mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot中的RestTemplate使用方法詳解

    SpringBoot中的RestTemplate使用方法詳解

    這篇文章主要介紹了SpringBoot中的RestTemplate使用方法詳解,為了方便使用,這里我封裝成一個(gè)工具類來靜態(tài)調(diào)用RestTemplate,基于SpringBoot2.4.2版本,需要的朋友可以參考下
    2024-01-01
  • 使用Log4j2代碼方式配置實(shí)現(xiàn)線程級(jí)動(dòng)態(tài)控制

    使用Log4j2代碼方式配置實(shí)現(xiàn)線程級(jí)動(dòng)態(tài)控制

    這篇文章主要介紹了使用Log4j2代碼方式配置實(shí)現(xiàn)線程級(jí)動(dòng)態(tài)控制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 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 語言守護(hù)線程 Daemon Thread使用示例詳解

    Java 語言守護(hù)線程 Daemon Thread使用示例詳解

    這篇文章主要為大家介紹了Java 語言守護(hù)線程 Daemon Thread使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • java如何連續(xù)執(zhí)行多條cmd命令

    java如何連續(xù)執(zhí)行多條cmd命令

    這篇文章主要介紹了java如何連續(xù)執(zhí)行多條cmd命令的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論