MyBatis-Plus的物理刪除和邏輯刪除(使用場(chǎng)景)
物理刪除:真實(shí)刪除,將數(shù)據(jù)從數(shù)據(jù)庫中刪除,刪除后查詢不到被刪除的數(shù)據(jù)
邏輯刪除:假刪除,方便刪除之后的數(shù)據(jù)恢復(fù)
在表中添加一個(gè)status字段,作為刪除的標(biāo)準(zhǔn),每次刪除時(shí),修改標(biāo)志位,0代表沒有刪除,1代表刪除
被刪除記錄的status字段被修改為“被刪除狀態(tài)”(1),刪除后還可以查詢到數(shù)據(jù)
邏輯刪除的使用場(chǎng)景
1.需要進(jìn)行數(shù)據(jù)恢復(fù)
2.有關(guān)聯(lián)數(shù)據(jù),不便刪除
# mysql //測(cè)試邏輯刪除 status int null default null
# 實(shí)體類 //實(shí)現(xiàn)邏輯刪除 @TableLogic @TableField(fill=FieldFill.INSERT) //為了方便測(cè)試 private Integer status;
# MpConfig配置類 //status在添加時(shí)自動(dòng)填充默認(rèn)為0,未被刪除狀態(tài)(1是被刪除狀態(tài)) this.setFieldValByName("status",0,metaObject);
# Test測(cè)試類 //先添加測(cè)試數(shù)據(jù) @Test public void testAdd(){ User user=new User(); //沒有設(shè)置id屬性主鍵自增長(zhǎng),但mybatis-plus會(huì)使用主鍵策略自動(dòng)生成id值 user.setName("wangwu"); user.setAge(18); user.setEmail("licy@163.com"); int insert=userMapper.insert(user); System.out.println(insert); } //再測(cè)試邏輯刪除 //在表中添加一個(gè)status字段,作為刪除的標(biāo)準(zhǔn),每次刪除時(shí),修改標(biāo)志位,0代表沒有刪除,1代表刪除 //UPDATE user SET status=1 WHERE id=? AND status=0 查詢條件有一個(gè)status=0,即查詢的都是沒有被刪除過的記錄,被刪除過的記錄就不會(huì)被查詢出來了 @Test public void testDeleteByLogic(){ int rows=userMapper.deleteById(1441596779656179713L); //在做了邏輯刪除的配置后,再使用id進(jìn)行刪除,執(zhí)行的語句變成了修改id=?并且status為0的記錄,如果status原來就是1(被刪除過了),也不會(huì)再被刪除, System.out.println(rows); }
先添加測(cè)試數(shù)據(jù)
再測(cè)試邏輯刪除
到此這篇關(guān)于MyBatis-Plus的物理刪除和邏輯刪除(使用場(chǎng)景)的文章就介紹到這了,更多相關(guān)MyBatis Plus物理刪除和邏輯刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MyBatis-Plus實(shí)現(xiàn)邏輯刪除功能解析
- Mybatis-Plus同時(shí)使用邏輯刪除和唯一索引的問題及解決辦法(報(bào)數(shù)據(jù)重復(fù)Duplicate entry的問題)
- Mybatis-Plus邏輯刪除的用法詳解
- mybatis-plus實(shí)現(xiàn)邏輯刪除的示例代碼
- MyBatis-Plus解決邏輯刪除與唯一索引的問題
- MyBatis-Plus實(shí)現(xiàn)邏輯刪除的示例代碼
- 關(guān)于mybatis-plus邏輯刪除無效的問題
- MyBatis-Plus之邏輯刪除的實(shí)現(xiàn)
- mybatis-plus3.4.0邏輯刪除報(bào)錯(cuò)的解決
- mybatis-plus邏輯刪除與唯一約束沖突問題
相關(guān)文章
Spring的實(shí)例工廠方法和靜態(tài)工廠方法實(shí)例代碼
這篇文章主要介紹了Spring的實(shí)例工廠方法和靜態(tài)工廠方法實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01java導(dǎo)出Excel(非模板)可導(dǎo)出多個(gè)sheet方式
Java開發(fā)中,導(dǎo)出Excel是常見需求,有時(shí)需要支持多個(gè)Sheet導(dǎo)出,此技巧介紹非模板方式實(shí)現(xiàn)單標(biāo)題單Sheet以及多Sheet導(dǎo)出,標(biāo)題一致或不一致均可,可換成Map使用,適合個(gè)人開發(fā)者和需要Excel導(dǎo)出功能的場(chǎng)景2024-09-09java實(shí)現(xiàn)IP地址轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)IP地址轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11java?實(shí)現(xiàn)獲取指定位置后的第一個(gè)數(shù)字
這篇文章主要介紹了java?實(shí)現(xiàn)獲取指定位置后的第一個(gè)數(shù)字,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01