mybatis-plus之TableLogic逻辑删除注解

本文介绍了如何在实体类中使用@TableLogic注解配合MyBatis-Plus的全局配置,实现0表示未删除,1表示已删除的逻辑删除功能。在yml配置文件中,设置logic-not-delete-value为0,logic-delete-value为1,以此来标记数据的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类中添加:

	@TableLogic
    private Integer isdelete;

yml文件中:

mybatis-plus:
  global-config:
    db-config:
      #0表示未删除
      logic-not-delete-value: 0
      #1表示已删除
      logic-delete-field: 1
### MyBatis-Plus 中通过 YAML 文件配置逻辑删除功能 在 MyBatis-Plus 中,可以通过 `application.yml` 或 `application.properties` 配置文件设置全局逻辑删除的相关参数。以下是具体的实现方法: #### 1. 全局逻辑删除属性配置 在 `application.yml` 文件中定义 MyBatis-Plus 的全局配置项,指定逻辑删除字段及其对应的值。 ```yaml mybatis-plus: global-config: db-config: logic-delete-field: deleted # 定义逻辑删除字段名称 (默认为 "deleted") logic-delete-value: 1 # 定义逻辑删除的值 (通常表示删除状态) logic-not-delete-value: 0 # 定义逻辑删除的值 (通常表示正常状态) ``` 上述配置指定了数据库表中的逻辑删除字段名为 `deleted`,当该字段值为 `1` 表示记录已被逻辑删除,而值为 `0` 则表示记录处于正常状态[^2]。 #### 2. 启用 SQL 日志调试 为了方便开发调试,可以启用 MyBatis-Plus 的日志输出功能,查看实际执行的 SQL 语句。 ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 此部分配置用于开启控制台的日志打印功能,便于观察逻辑删除机制的实际效果[^3]。 #### 3. 实体类注解支持 除了配置文件外,还需要在实体类上添加相应的注解以支持逻辑删除功能。具体如下: ```java import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; public class DemoEntity { private Long id; @TableLogic @TableField("deleted") // 映射到数据库中的逻辑删除字段 private Integer deleted; // 默认情况下,MyBatis-Plus 自动处理此字段 } ``` 在此代码片段中,`@TableLogic` 注解表明当前字段是一个逻辑删除字段,并由框架自动管理其值的变化[^1]。 #### 4. 查询操作验证 完成以上配置后,可以直接调用 MyBatis-Plus 提供的方法进行增删改查操作。例如: ```java // 根据主键查询一条记录 Demo demo = demoService.getById(id); // 条件查询 QueryWrapper<Demo> wrapper = new QueryWrapper<>(); wrapper.eq("name", "test_1"); Demo result = demoService.getOne(wrapper); ``` 需要注意的是,在启用了逻辑删除的情况下,默认不会返回已经被标记为删除 (`deleted=1`) 的记录[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值