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

mybatis-plus實現(xiàn)邏輯刪除的示例代碼

 更新時間:2024年05月16日 10:08:38   作者:IT云煙.  
在大多數(shù)公司里,都會采用邏輯刪除的方式,本文主要介紹了mybatis-plus實現(xiàn)邏輯刪除的示例代碼,具有一定的參考價值,感興趣的可以了解一下

一、什么是邏輯刪除?

邏輯刪除的本質(zhì)是修改操作,并不是真正的刪除,而是在表中將對應的是否刪除標識(del_flag)做修改操作。比如0是未刪除,1是刪除。在邏輯上數(shù)據(jù)是被刪除的,但數(shù)據(jù)本身依然存在庫中。

邏輯刪除sql語句為:

update user set del_flag=1 where id = 1 and del_flag=0

這種設計,后端每次向數(shù)據(jù)庫查詢數(shù)據(jù)時,只查del_flag=0(未刪除)的數(shù)據(jù)。拿上面sql舉例,那么客戶端進行查詢id為1的信息,服務器就不會提供信息。
查詢sql為:

select id,name,del_flag from user where del_flag=0

二、為什么使用邏輯刪除?

  • 方便數(shù)據(jù)恢復,保護數(shù)據(jù)本身的價值。
  • 保證數(shù)據(jù)連續(xù)性,對主鍵的影響可能會導致底層B+樹重建,而 delete 和 update id 都會影響主鍵。

事實上,在大多數(shù)公司里,都會采用邏輯刪除的方式,因為數(shù)據(jù)的價值更大,被刪除的數(shù)據(jù)也非常有記錄價值,這樣的操作也并不會提高太多的操作難度。

三、在springboot使用Mybatis-Plus提供的邏輯刪除

字段類型支持說明:支持所有數(shù)據(jù)類型(推薦使用 Integer,Boolean,LocalDateTime)

如果數(shù)據(jù)庫字段使用datetime,邏輯未刪除值和已刪除值支持配置為字符串null,另一個值支持配置為函數(shù)來獲取值如now()

3.1、在application.yml配置

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag # 全局邏輯刪除的實體字段名(since 3.3.0,配置后可以忽略不配置步驟2)
      logic-delete-value: 1 # 邏輯已刪除值(默認為 1)
      logic-not-delete-value: 0 # 邏輯未刪除值(默認為 0)

3.2、實體類字段上加上@TableLogic注解

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;

/**
 * 用戶訂單
 *
 * @author yunyan
 */
@TableName("t_user")
@Data
public class UserPO implements Serializable {

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 用戶名
     */

    private String userName;
    /**
     * 密碼
     */

    private String password;
    /**
     * 昵稱
     */

    private String nickName;
    /**
     * 刪除標識
     */
    @TableLogic
    private Integer delFlag;

3.3、演示

 3.4、UserMapper

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.testinterface.entity.po.UserPO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 用戶映射器
 *
 * @author yunyan
 */
@Mapper
public interface UserMapper extends BaseMapper<UserPO> {
}

 3.5、IUserService

/**
 * 用戶服務
 *
 * @author yunyan
 */
public interface IUserService extends IService<UserPO> {

}

3.6、UserServiceImpl

/**
 * 用戶服務impl
 *
 * @author yunyan
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserPO> implements IUserService {

}

3.7、controller

@RequestMapping("/open/del")
    public ResultUtil del(UserParam userParam){
        UserPO one = userService.getOne(new LambdaQueryWrapper<UserPO>()
                .eq(UserPO::getUserName, userParam.getUserName()));
        boolean b = userService.removeById(one);
        System.out.println(b);
        return ResultUtil.success(b);
    }

3.8、ResultUtil

@Data
public class ResultUtil {

    private String code;

    private String message;

    private  Object data;
    public static  ResultUtil success(Object data){
        ResultUtil resultUtil = new ResultUtil();
        resultUtil.setCode("200");
        resultUtil.setMessage("請求成功");
        resultUtil.setData(data);
        return resultUtil;
    }
}

3.9、瀏覽器請求

 3.10、數(shù)據(jù)庫的數(shù)據(jù)

可以看到,加了@TableLogic注解的字段對應的數(shù)據(jù)庫字段,由0(未刪除)改為1(已刪除)

到此這篇關于mybatis-plus實現(xiàn)邏輯刪除的示例代碼的文章就介紹到這了,更多相關mybatis-plus 邏輯刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Java基礎 Servlet監(jiān)聽器詳解

    Java基礎 Servlet監(jiān)聽器詳解

    這篇文章主要介紹了Java基礎 Servlet監(jiān)聽器詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • Java 存儲模型和共享對象詳解

    Java 存儲模型和共享對象詳解

    這篇文章主要介紹了Java 存儲模型和共享對象詳解的相關資料,對Java存儲模型,可見性和安全發(fā)布的問題是起源于Java的存儲結(jié)構及共享對象安全,需要的朋友可以參考下
    2017-03-03
  • Java簡易登錄注冊功能實現(xiàn)代碼解析

    Java簡易登錄注冊功能實現(xiàn)代碼解析

    這篇文章主要介紹了Java簡易登錄注冊功能實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 解決@PostConstruct注解導致的程序無法啟動(@PostConstruct的執(zhí)行)

    解決@PostConstruct注解導致的程序無法啟動(@PostConstruct的執(zhí)行)

    這篇文章主要介紹了解決@PostConstruct注解導致的程序無法啟動(@PostConstruct的執(zhí)行)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java 中運行字符串表達式的方法

    Java 中運行字符串表達式的方法

    這篇文章主要介紹了Java 中運行字符串表達式的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • 關于weblogic部署Java項目的包沖突問題的解決

    關于weblogic部署Java項目的包沖突問題的解決

    這篇文章主要介紹了關于weblogic部署Java項目的包沖突問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • Java實現(xiàn)異步延遲隊列的方法詳解

    Java實現(xiàn)異步延遲隊列的方法詳解

    目前系統(tǒng)中有很多需要用到延時處理的功能,本文就為大家介紹了Java實現(xiàn)異步延遲隊列的方法,文中的示例代碼講解詳細,需要的可以參考一下
    2023-03-03
  • servlet之cookie簡介_動力節(jié)點Java學院整理

    servlet之cookie簡介_動力節(jié)點Java學院整理

    Cookie技術誕生以來,它就成了廣大網(wǎng)絡用戶和Web開發(fā)人員爭論的一個焦點。下面這篇文章主要給大家介紹了關于servlet之cookie簡介的相關資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • JAVA使用前綴樹(Tire樹)實現(xiàn)敏感詞過濾、詞典搜索

    JAVA使用前綴樹(Tire樹)實現(xiàn)敏感詞過濾、詞典搜索

    本文主要介紹了JAVA使用前綴樹(Tire樹)實現(xiàn)敏感詞過濾、詞典搜索,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Springboot如何配置yml文件與映射到java類

    Springboot如何配置yml文件與映射到java類

    這篇文章主要介紹了Springboot如何配置yml文件與映射到java類問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論