MyBatis-Plus的物理刪除和邏輯刪除(使用場(chǎng)景)
物理刪除:真實(shí)刪除,將數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除,刪除后查詢不到被刪除的數(shù)據(jù)
邏輯刪除:假刪除,方便刪除之后的數(shù)據(jù)恢復(fù)
在表中添加一個(gè)status字段,作為刪除的標(biāo)準(zhǔn),每次刪除時(shí),修改標(biāo)志位,0代表沒(méi)有刪除,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();
//沒(méi)有設(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代表沒(méi)有刪除,1代表刪除
//UPDATE user SET status=1 WHERE id=? AND status=0 查詢條件有一個(gè)status=0,即查詢的都是沒(méi)有被刪除過(guò)的記錄,被刪除過(guò)的記錄就不會(huì)被查詢出來(lái)了
@Test
public void testDeleteByLogic(){
int rows=userMapper.deleteById(1441596779656179713L); //在做了邏輯刪除的配置后,再使用id進(jìn)行刪除,執(zhí)行的語(yǔ)句變成了修改id=?并且status為0的記錄,如果status原來(lái)就是1(被刪除過(guò)了),也不會(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í)使用邏輯刪除和唯一索引的問(wèn)題及解決辦法(報(bào)數(shù)據(jù)重復(fù)Duplicate entry的問(wèn)題)
- Mybatis-Plus邏輯刪除的用法詳解
- mybatis-plus實(shí)現(xiàn)邏輯刪除的示例代碼
- MyBatis-Plus解決邏輯刪除與唯一索引的問(wèn)題
- MyBatis-Plus實(shí)現(xiàn)邏輯刪除的示例代碼
- 關(guān)于mybatis-plus邏輯刪除無(wú)效的問(wèn)題
- MyBatis-Plus之邏輯刪除的實(shí)現(xiàn)
- mybatis-plus3.4.0邏輯刪除報(bào)錯(cuò)的解決
- mybatis-plus邏輯刪除與唯一約束沖突問(wèn)題
相關(guān)文章
Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn)
本文主要介紹了Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
淺談Java自定義類加載器及JVM自帶的類加載器之間的交互關(guān)系
這篇文章主要介紹了淺談Java自定義類加載器及JVM自帶的類加載器之間的交互關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Java使用POI將多個(gè)Sheet合并為一個(gè)Sheet
這篇文章主要為大家詳細(xì)介紹了Java使用POI將多個(gè)Sheet合并為一個(gè)Sheet,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
java設(shè)計(jì)模式之橋接模式(Bridge)
這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之橋接模式Bridge,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Java中char數(shù)組(字符數(shù)組)與字符串String類型的轉(zhuǎn)換方法
這篇文章主要介紹了Java中char數(shù)組(字符數(shù)組)與字符串String類型的轉(zhuǎn)換方法,涉及Java中toCharArray與valueOf方法的使用技巧,需要的朋友可以參考下2015-12-12



