mybatisPlus逻辑删除注解@TableLogic

当我做了一个实体类,字段为del_flag的逻辑删除字段,要通过这个字段控制数据库中的数据逻辑删除。

重写mapper中的deleteById, 先按id查出数据,在更新此数据中的del_flag字段为1,调用update方法更新数据。

这种方式我用了好久,偶然发现如果后端框架是mybatisPlus时,有一个注解@TableLogic,直接放到写到实体类中的字段上即可使框架的删除。

测试了一下,果然有效,简化了好多代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MybatisPlus提供了逻辑删除的功能,可以通过在实体类中添加一个标识删除的字段(如`is_deleted`)来实现。步骤如下: 1. 在实体类中添加`@TableLogic`注解,并指定逻辑删除的值和未删除的值,如: ```java @Data public class User { private Long id; private String name; private Integer age; @TableLogic(value = "0", delval = "1") private Integer deleted; } ``` 上述代码中,`@TableLogic`注解中的`value`属性表示未删除的值,默认为`0`,`delval`属性表示删除的值,默认为`1`。 2. 在MybatisPlus的配置文件中开启逻辑删除,如: ```java @SpringBootApplication @MapperScan("com.example.demo.mapper") public class DemoApplication { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 开启逻辑删除 paginationInterceptor.setSqlParser(new LogicSqlParser()); return paginationInterceptor; } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 上述代码中,通过`setSqlParser`方法将`LogicSqlParser`注入到`PaginationInterceptor`中,开启逻辑删除功能。 3. 在Mapper接口中继承`BaseMapper`,如: ```java public interface UserMapper extends BaseMapper<User> { } ``` 继承`BaseMapper`可以直接使用MybatisPlus提供的CRUD方法,包括逻辑删除的方法。 4. 使用逻辑删除的方法进行删除操作,如: ```java @Autowired private UserMapper userMapper; @Test public void testDelete() { int rows = userMapper.deleteById(1L); System.out.println(rows); } ``` 上述代码中,使用`deleteById`方法进行逻辑删除,将id为1的记录的`is_deleted`字段值设置为`1`。 总结:通过在实体类中添加`@TableLogic`注解,并在MybatisPlus的配置文件中开启逻辑删除的功能,即可使用MybatisPlus提供的逻辑删除方法进行删除操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值