Mybatis?plus邏輯刪除注解@TableLogic的使用
首先這個(gè)注解是苞米豆出品,也就是我們常說(shuō)的mybatis升級(jí)版的東西。
簡(jiǎn)單講一下這個(gè)注解的用法:我們?cè)谧鰯?shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候有時(shí)候哪怕是刪除也不會(huì)真的走物理刪除,畢竟這樣很多數(shù)據(jù)就不可恢復(fù)了,大多數(shù)時(shí)候很多刪除都是用邏輯刪除。
物理刪除和邏輯刪除
簡(jiǎn)單來(lái)說(shuō)物理刪除就是真的把這條數(shù)據(jù)從數(shù)據(jù)庫(kù)刪除了。
而邏輯刪除主要是把表中的某一個(gè)字段作為標(biāo)識(shí)符,一般我們常用的會(huì)默認(rèn)初始為0,當(dāng)我們想要?jiǎng)h除這條數(shù)據(jù)的時(shí)候會(huì)把這個(gè)標(biāo)識(shí)符改成1。這樣在我們的常識(shí)里這條記錄就被刪除了。并且任何的查詢都會(huì)添加這個(gè)條件,也就是要在代碼中保證查詢出來(lái)的數(shù)據(jù)是有效的。
@TableLogic注解
@TableLogic注解默認(rèn)值:
剛剛已經(jīng)說(shuō)了這個(gè)注解是用于邏輯刪除的,代表一個(gè)標(biāo)識(shí)符,既然是標(biāo)識(shí)符肯定要有值了,比如我上面說(shuō)的0表示存在,1表示刪除。但是不能排除有的設(shè)計(jì)就是不按照常理,比如1表示存在,2表示刪除。所以@TableLogic注解是可以設(shè)置默認(rèn)值的。用法如下:
@TableLogic(value=“存在標(biāo)識(shí)”,delval=“刪除標(biāo)識(shí)”) private Integer del_flag;
如果不寫(xiě)value和delval會(huì)默認(rèn)存在標(biāo)識(shí)是0.刪除標(biāo)識(shí)是1.
@TableLogic注解用法
這個(gè)注解的用處就比較簡(jiǎn)單了,當(dāng)我們?cè)趯?shí)體類中某一個(gè)字段添加了這個(gè)注解,就相當(dāng)于告訴mp這個(gè)字段是個(gè)標(biāo)識(shí)符。我們調(diào)用BaseMapper或者調(diào)用IService的所有增刪改查方法會(huì)受影響。
- 查詢的時(shí)候用條件構(gòu)造器,不用再對(duì)這個(gè)字段進(jìn)行判斷,會(huì)自動(dòng)篩選出存在的值。這里需要注意拿我上面的demo舉例:哪怕我們傳條件del_flag = 1,也不會(huì)生效。簡(jiǎn)單總結(jié)下:用mp條件構(gòu)造器查詢出來(lái)的結(jié)果一定是邏輯存在的
- 修改的時(shí)候差不多,如果我們把實(shí)體對(duì)象的del_flag 賦值為1然后保存,也是保存不成功的。
- 刪除的時(shí)候我們?nèi)绻挥眠@個(gè)注解,用mp的delete方法或者remove方法都是物理刪除。但是如果用了這個(gè)注解,那么所有的delete方法或者remove方法都是邏輯刪除,也就是將del_flag 改為1.
需要注意的是上面說(shuō)的都只對(duì)mp的查詢有影響,我們用xml或者注釋的方式自己寫(xiě)sql是不生效的!
本篇筆記就記到這里,如果稍微幫到你了記得點(diǎn)個(gè)喜歡點(diǎn)個(gè)關(guān)注,也祝大家工作順順利利!其實(shí)這個(gè)知識(shí)點(diǎn)是新公司學(xué)到的東西,以前不知道所有的邏輯刪除都要自己寫(xiě),雖然能實(shí)現(xiàn)但是也麻煩的很,有時(shí)候我會(huì)覺(jué)得所謂的技術(shù)不見(jiàn)得是寫(xiě)出別人寫(xiě)不出來(lái)的東西,而是知道,使用,制作更好的輪子。愿我們都在前進(jìn)的路上!
到此這篇關(guān)于Mybatis plus邏輯刪除注解@TableLogic的文章就介紹到這了,更多相關(guān)Mybatis plus @TableLogic內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot2中HikariCP連接池的相關(guān)配置問(wèn)題
這篇文章主要介紹了springboot2中HikariCP連接池的相關(guān)配置問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12java:程序包org.apache.ibatis.annotations不存在報(bào)錯(cuò)解決
這篇文章主要給大家介紹了關(guān)于java:程序包org.apache.ibatis.annotations不存在報(bào)錯(cuò)的解決方法,這個(gè)錯(cuò)誤是我在直接導(dǎo)入springboot項(xiàng)目的時(shí)候報(bào)錯(cuò)的,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04SpringCloud網(wǎng)關(guān)Gateway架構(gòu)解析
這篇文章主要介紹了SpringCloud網(wǎng)關(guān)Gateway架構(gòu)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03springboot?vue接口測(cè)試定義編輯功能的實(shí)現(xiàn)
這篇文章主要為大家介紹了springboot?vue接口測(cè)試定義編輯功能的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05java如何使用zip壓縮實(shí)現(xiàn)讀取寫(xiě)入
這篇文章主要為大家介紹了java如何使用zip壓縮實(shí)現(xiàn)讀取寫(xiě)入示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11ArrayList?foreach循環(huán)增添刪除導(dǎo)致ConcurrentModificationException解決分
這篇文章主要為大家介紹了ArrayList?foreach循環(huán)增添刪除導(dǎo)致ConcurrentModificationException解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-12-12Java Web程序?qū)崿F(xiàn)返回JSON字符串的方法總結(jié)
Java Web服務(wù)器端只要把Java對(duì)象數(shù)據(jù)轉(zhuǎn)成JSON字符串,把JSON字符串以文本的形式通過(guò)response輸出即可,2016-05-05Spark學(xué)習(xí)筆記之Spark中的RDD的具體使用
這篇文章主要介紹了Spark學(xué)習(xí)筆記之Spark中的RDD的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Java中常見(jiàn)的查找算法與排序算法總結(jié)
數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存儲(chǔ)的方式,算法是數(shù)據(jù)計(jì)算的方式。所以在開(kāi)發(fā)中,算法和數(shù)據(jù)結(jié)構(gòu)息息相關(guān)。本文為大家整理了Java中常見(jiàn)的查找與排序算法的實(shí)現(xiàn),需要的可以參考一下2023-03-03