最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatisplus的邏輯刪除問題

 更新時(shí)間:2023年03月10日 09:06:22   作者:LC超人在良家  
這篇文章主要介紹了mybatisplus的邏輯刪除問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatisplus的邏輯刪除

mp提供的邏輯刪除實(shí)現(xiàn)起來非常簡單

只需要在application.yml中進(jìn)行邏輯刪除的相關(guān)配置即可

mybatis-plus:  
  global-config:  
    db-config:  
      logic-delete-field: deleted # 全局邏輯刪除的實(shí)體字段名  
      logic-delete-value: 1 # 邏輯已刪除值(默認(rèn)為1)  
      logic-not-delete-value: 0 # 邏輯未刪除值(默認(rèn)為0)  
      # 若邏輯已刪除和未刪除的值和默認(rèn)值一樣,則可以不配置這2項(xiàng)

測試代碼

int i = mapper.deleteById(6);  
		System.out.println("rowAffected = " + i);  

在這里插入圖片描述

可以看到,發(fā)出的SQL不再是DELETE,而是UPDATE

此時(shí)我們再執(zhí)行一次SELECT

@Test  
public void testSelect() {  
	List<User2> users = mapper.selectList(null);  
}

在這里插入圖片描述

可以看到,發(fā)出的SQL語句,會自動在WHERE后面拼接邏輯未刪除的條件。

查詢出來的結(jié)果中,沒有了id為6的王軟蛋。

若想要SELECT的列,不包括邏輯刪除的那一列,則可以在實(shí)體類中通過@TableField進(jìn)行配置

@TableField(select = false)  
private Integer deleted;

可以看到下圖的執(zhí)行結(jié)果中,SELECT中已經(jīng)不包含deleted這一列了

在這里插入圖片描述

前面在application.yml中做的配置,是全局的。通常來說,對于多個(gè)表,我們也會統(tǒng)一邏輯刪除字段的名稱,統(tǒng)一邏輯已刪除和未刪除的值,所以全局配置即可。

當(dāng)然,若要對某些表進(jìn)行單獨(dú)配置,在實(shí)體類的對應(yīng)字段上使用@TableLogic即可。

@TableLogic(value = "0", delval = "1")  
private Integer deleted;

【小結(jié)】

開啟mp的邏輯刪除后,會對SQL產(chǎn)生如下的影響

  • INSERT語句:沒有影響
  • SELECT語句:追加WHERE條件,過濾掉已刪除的數(shù)據(jù)
  • UPDATE語句:追加WHERE條件,防止更新到已刪除的數(shù)據(jù)
  • DELETE語句:轉(zhuǎn)變?yōu)閁PDATE語句

注意,上述的影響,只針對mp自動注入的SQL生效。如果是自己手動添加的自定義SQL,則不會生效。

比如:

public interface User2Mapper extends BaseMapper<User2> {  
	@Select("select * from user2")  
	List<User2> selectRaw();  
}

調(diào)用這個(gè)selectRaw,則mp的邏輯刪除不會生效。

另,邏輯刪除可在application.yml中進(jìn)行全局配置,也可在實(shí)體類中用@TableLogic進(jìn)行局部配置。

使用mybatisplus邏輯刪除,修改含有邏輯刪除的字段爆錯

mybatisplus在配置文件中配置如下

以上是全局邏輯刪除配置。

當(dāng)使用mybatisplus生成的修改方法,修改含有showStatus對應(yīng)的字段時(shí),會報(bào)錯。

錯誤sql語句如下

而我要修改的如下:

正確的修改的sql語句應(yīng)該如下:

所以我們可以在xml文件中單獨(dú)寫sql語句

或者不在配置文件中設(shè)置邏輯刪除字段名 使用@TableLogic注解

如下:

showStatus是表示此信息是否顯示。

如:

表示 show_status等于0時(shí) brand_id (即id)=1591652104429125634 的信息不顯示。

這樣我們就是局部使用邏輯刪除。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring AOP結(jié)合注解實(shí)現(xiàn)接口層操作日志記錄

    Spring AOP結(jié)合注解實(shí)現(xiàn)接口層操作日志記錄

    在項(xiàng)目開發(fā)中我們需要記錄接口的操作日志:包含請求參數(shù)、響應(yīng)參數(shù)、接口所屬模塊、接口功能描述、請求地址、ip地址等信息;實(shí)現(xiàn)思路很簡單就是基于注解和aop的方式去記錄日志,主要的難點(diǎn)在于日志表結(jié)構(gòu)、注解的設(shè)計(jì)已經(jīng)aop實(shí)現(xiàn)的一些比較好的實(shí)現(xiàn)方式的借鑒
    2022-08-08
  • Intellij Idea插件開發(fā)之創(chuàng)建項(xiàng)目層級的右鍵菜單

    Intellij Idea插件開發(fā)之創(chuàng)建項(xiàng)目層級的右鍵菜單

    這篇文章主要介紹了Intellij Idea插件開發(fā)之創(chuàng)建項(xiàng)目層級的右鍵菜單,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • java基礎(chǔ)中異常及包歸納整理

    java基礎(chǔ)中異常及包歸納整理

    這篇文章主要介紹了java基礎(chǔ)中的 異常與包,有需要的朋友可以參考一下
    2017-04-04
  • java.net.http.HttpClient使用示例解析

    java.net.http.HttpClient使用示例解析

    這篇文章主要為大家介紹了java.net.http.HttpClient使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • SpringBoot整合七牛云上傳圖片的示例代碼

    SpringBoot整合七牛云上傳圖片的示例代碼

    本文就來介紹了SpringBoot整合七牛云上傳圖片的示例代碼,用戶在前端上傳圖片后,交由后端處理,上傳至七牛云,感興趣的可以了解一下
    2023-10-10
  • java中Map如何根據(jù)key的大小進(jìn)行排序詳解

    java中Map如何根據(jù)key的大小進(jìn)行排序詳解

    這篇文章主要給大家介紹了關(guān)于java中Map如何根據(jù)key的大小進(jìn)行排序的相關(guān)資料,有時(shí)候我們業(yè)務(wù)上需要對map里面的值按照key的大小來進(jìn)行排序的時(shí)候我們就可以利用如下方法來進(jìn)行排序了,需要的朋友可以參考下
    2023-09-09
  • java虛擬機(jī)之JVM調(diào)優(yōu)詳解

    java虛擬機(jī)之JVM調(diào)優(yōu)詳解

    這篇文章主要介紹了java虛擬機(jī)之JVM調(diào)優(yōu)詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Java虛擬機(jī)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 徹底搞懂Java多線程(四)

    徹底搞懂Java多線程(四)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線程和高并發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Spring緩存注解@Cacheable @CacheEvit @CachePut使用介紹

    Spring緩存注解@Cacheable @CacheEvit @CachePut使用介紹

    Spring在3.1版本,就提供了一條基于注解的緩存策略,實(shí)際使用起來還是很絲滑的,本文將針對幾個(gè)常用的注解進(jìn)行簡單的介紹說明,有需要的小伙伴可以嘗試一下
    2021-07-07
  • IntelliJ IDEA同步代碼時(shí)版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法

    IntelliJ IDEA同步代碼時(shí)版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA同步代碼時(shí)版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論

常山县| 石屏县| 房产| 南江县| 镇巴县| 台东市| 江阴市| 北辰区| 北碚区| 宜黄县| 明星| 湛江市| 梁平县| 梅河口市| 武穴市| 郁南县| 汤原县| 格尔木市| 郴州市| 璧山县| 武邑县| 博白县| 阜康市| 六安市| 拉孜县| 富川| 崇左市| 新源县| 万全县| 普兰县| 循化| 洱源县| 富蕴县| 赤城县| 绍兴县| 衡山县| 鹤庆县| 资中县| 会东县| 象州县| 富顺县|