刪除又分為邏輯刪除和物理刪除,那么它們有什么區(qū)別呢?
物理刪除:真實(shí)刪除,將對(duì)應(yīng)數(shù)據(jù)從數(shù)據(jù)庫中刪除,之后查詢不到此條被刪除數(shù)據(jù)。
邏輯刪除:假刪除,將對(duì)應(yīng)數(shù)據(jù)中代表是否被刪除字段狀態(tài)修改為“被刪除狀態(tài)”,之后在數(shù)據(jù)庫中仍舊能看到此條數(shù)據(jù)記錄。
在我們?nèi)粘i_發(fā)中,為了保留數(shù)據(jù),經(jīng)常會(huì)使用邏輯刪除的方式進(jìn)行數(shù)據(jù)刪除,下面我們就來看看物理刪除與邏輯刪除怎么實(shí)現(xiàn)的吧
首先假設(shè)我有這樣一張表
實(shí)體類:
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; }