1、逻辑删除

1-逻辑删除.png

2-逻辑删除.png

2、实体类修改

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User implements Serializable {
    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String tel;
    /**
     * 默认逻辑未删除值(该值可无、会自动获取全局配置)
     * value()
     * 默认逻辑删除值(该值可无、会自动获取全局配置)
     * delval()
     */
    @TableLogic //标记逻辑删除要指定的字段
    private Integer deleted;

}

3、数据库中添加字段

3-逻辑删除.png

4、配置文件修改

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      id-type: auto
      #table-prefix: tbl_  #配置所有实体类都带该前缀,与数据库表对应
      #指定逻辑删除的字段
      logic-delete-field: deleted
      #没有删除的情况为0
      logic-not-delete-value: 0
      #已经删除的情况为1
      logic-delete-value: 1

5、执行操作

    /**
     * 逻辑删除,添加一个字段用于标记该数据是否被删除,1为已删除,0为未删除
     */
    @Test
    void test08(){
        //sql语句:UPDATE user SET deleted=1 WHERE id=? AND deleted=0
        //当使用逻辑删除后,删除语句会从DELETE变成UPDATE
        userMapper.deleteById(10L);
    }