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

MybatisPlus中的刪除和邏輯刪除及區(qū)別介紹

 更新時間:2020年08月26日 11:50:40   作者:qq_43742526  
這篇文章主要介紹了MybatisPlus中的刪除和邏輯刪除的相關知識,刪除又分為邏輯刪除和物理刪除,那么它們有什么區(qū)別呢?在本文給大家詳細介紹,感興趣的朋友跟隨小編一起看看吧

刪除又分為邏輯刪除和物理刪除,那么它們有什么區(qū)別呢?
物理刪除:真實刪除,將對應數據從數據庫中刪除,之后查詢不到此條被刪除數據。
邏輯刪除:假刪除,將對應數據中代表是否被刪除字段狀態(tài)修改為“被刪除狀態(tài)”,之后在數據庫中仍舊能看到此條數據記錄。
在我們日常開發(fā)中,為了保留數據,經常會使用邏輯刪除的方式進行數據刪除,下面我們就來看看物理刪除與邏輯刪除怎么實現(xiàn)的吧
首先假設我有這樣一張表

在這里插入圖片描述

實體類:

package com.atguigu.mybatis_plus.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
@Data
public class User {
  @TableId(type = IdType.AUTO)
  private Long id;
  private String name;
  private Integer age;
  private String email;
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;
  // @TableField(fill = FieldFill.UPDATE)
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date updateTime;
  
}

userMapper接口:

package com.atguigu.mybatis_plus.mapper;
import com.atguigu.mybatis_plus.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
// 繼承BaseMapper后UserMapper就具有了CRUD功能
public interface UserMapper extends BaseMapper<User>{
}

一、物理刪除

1、根據id刪除記錄

@Test
  public void testLogicDelete() {
    int count = userMapper.deleteById(1L); // 刪除id為1的數據
    System.out.println("受影響的行數"+count);
  }

2、批量刪除

@Test
public void testDeleteBatchIds() {
  int result = userMapper.deleteBatchIds(Arrays.asList(2, 3, 4)); // 刪除id為2,3,4的數據
  System.out.println(result);
}

結果:

在這里插入圖片描述

物理刪除比較簡單,接下來我們看看邏輯刪除怎么實現(xiàn)吧!

二、邏輯刪除

(1)數據庫修改,添加 deleted字段

在這里插入圖片描述

(2)實體類修改,添加deleted 字段,并加上 @TableLogic 注解

/*
  加@TableLogic的情況下,程序內部會將delete語句變?yōu)閡pdate語句
  實際上我們寫的代碼并不需要做出什么改變
  */
  @TableLogic
  private Integer deleted;

(3)測試

	/**
   * 邏輯刪除
   */
  @Test
  public void testLogicDelete() {
    int count = userMapper.deleteById(5L);
    System.out.println("受影響的行數"+count);
  }

結果:

在這里插入圖片描述
在這里插入圖片描述

  • 測試后發(fā)現(xiàn),數據并沒有被刪除,deleted字段的值由0變成了1
  • 測試后分析打印的sql語句,是一條update
  • 注意:被刪除前,數據的deleted 字段的值必須是 0,才能被選取出來執(zhí)行邏輯刪除的操作

(5)測試邏輯刪除后的查詢,MyBatis Plus中查詢操作也會自動添加邏輯刪除字段的判斷

@Test
  public void testSelect() {
    List<User> users = userMapper.selectList(null); // 查詢所有記錄
    users.forEach(System.out::println); // 遍歷輸出
  }

結果:

在這里插入圖片描述

總結

到此這篇關于MybatisPlus中的刪除和邏輯刪除及區(qū)別介紹的文章就介紹到這了,更多相關MybatisPlus刪除和邏輯刪除內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MybatisX無法自動生成entity實體類的解決方法

    MybatisX無法自動生成entity實體類的解決方法

    本文主要介紹了MybatisX無法自動生成entity實體類的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Java使用@EnableEurekaServer實現(xiàn)自動裝配詳解

    Java使用@EnableEurekaServer實現(xiàn)自動裝配詳解

    這篇文章主要介紹了Java使用@EnableEurekaServer實現(xiàn)自動裝配過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • java模擬客戶端向服務器上傳文件

    java模擬客戶端向服務器上傳文件

    這篇文章主要為大家詳細介紹了java模擬客戶端向服務器上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Spring注解驅動之BeanFactoryPostProcessor原理解析

    Spring注解驅動之BeanFactoryPostProcessor原理解析

    這篇文章主要介紹了Spring注解驅動之BeanFactoryPostProcessor原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • java基于spring注解AOP的異常處理的方法

    java基于spring注解AOP的異常處理的方法

    本篇文章主要介紹了java基于spring注解AOP的異常處理的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Java中的字節(jié)流文件讀取教程(一)

    Java中的字節(jié)流文件讀取教程(一)

    這篇文章主要給大家介紹了關于Java中字節(jié)流文件讀取的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • Java中的HttpServletRequestWrapper用法解析

    Java中的HttpServletRequestWrapper用法解析

    這篇文章主要介紹了Java中的HttpServletRequestWrapper用法解析,HttpServletRequest 對參數值的獲取實際調的是org.apache.catalina.connector.Request,沒有提供對應的set方法修改屬性,所以不能對前端傳來的參數進行修改,需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)的簡單網頁截屏功能示例

    Java實現(xiàn)的簡單網頁截屏功能示例

    這篇文章主要介紹了Java實現(xiàn)的簡單網頁截屏功能,涉及java網頁打開及屏幕截圖功能相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • 淺談Java中return和finally的問題

    淺談Java中return和finally的問題

    在Java中當try、finally語句中包含return語句時,執(zhí)行情況到底是怎樣的,finally中的代碼是否執(zhí)行,大家眾說紛紜,有的說會執(zhí)行,有的說不會執(zhí)行,到底哪種說法正確,下面我們來詳細討論下
    2015-10-10
  • Java之String、StringBuffer、StringBuilder的區(qū)別分析

    Java之String、StringBuffer、StringBuilder的區(qū)別分析

    今天搞安卓在看書的時候遇到了StringBuilder這個類型的東東,有點小迷,不知道它跟string、stringbuffer的關系式怎么樣的,趕快查閱相關資料,了解了個大概,拿出來分享一下
    2012-11-11

最新評論