06-MybatisPlus实现逻辑删除

本文介绍了MybatisPlus如何通过逻辑删除机制,在数据库中使用ALTER TABLE添加`deleted`字段实现标记删除,同时配置了逻辑删除状态的值。通过示例展示了删除操作的过程和结果,帮助理解这两种删除方式的区别。
摘要由CSDN通过智能技术生成

两个删除的区别

物理删除

直接将记录,从数据库中删除掉

逻辑删除

保留记录在表中,只是将该记录,标记为已删除

MybatisPlus实现逻辑删除

1、新增数据库字段,sql语句如下:

ALTER TABLE mybatis_plus_user ADD COLUMN `deleted` INT(2) DEFAULT 0 COMMENT '是否删除,0-未删除,1-已删除'; 

2、实体类新增对应字段

  /**
   * 是否删除
   */
  @TableLogic
  private Integer deleted;

3、在application.properties文件中,新增配置

#逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

4、在测试类中,新增删除方法

@Test
public void testDelete(){
    //删除
    mybatisPlusUserMapper.deleteById(1508489260037705729L);
}

5、运行方法,执行过程如下

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4afd21c6] was not registered for synchronization because synchronization is not active
2022-04-03 22:15:00.978  INFO 4848 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2022-04-03 22:15:01.336  INFO 4848 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
JDBC Connection [HikariProxyConnection@1583722422 wrapping com.mysql.cj.jdbc.ConnectionImpl@5b3a7ef5] will not be managed by Spring
==>  Preparing: UPDATE mybatis_plus_user SET deleted=1 WHERE id=? AND deleted=0
==> Parameters: 1508489260037705729(Long)
<==    Updates: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4afd21c6]

6、执行结果

在这里插入图片描述

MyBatis-Plus可以通过配置和注解来实现逻辑删除。首先,你需要在配置文件中进行相应的配置。在配置文件中,你可以设置全局逻辑删除的实体字段名,逻辑删除值和逻辑删除值。例如,你可以将逻辑删除字段名设置为"deleted",逻辑删除值设置为1,逻辑删除值设置为0。这样,当进行逻辑删除操作时,会将该字段的值修改为逻辑删除值,而不是直接删除数据。\[1\] 另外,你还可以在实体类的属性上添加@TableLogic注解来指定逻辑删除的字段。例如,在user表的实体类中,你可以在deleted字段上添加@TableLogic注解,表示该字段是逻辑删除的字段。注解中的参数可以指定逻辑删除值和逻辑删除值。\[3\] 通过以上配置和注解,你就可以使用MyBatis-Plus逻辑删除功能了。当进行删除操作时,会将逻辑删除字段的值修改为逻辑删除值,而不是直接删除数据。在查询时,可以通过条件来过滤掉已被逻辑删除的数据,只查询未被逻辑删除的数据。这样可以实现逻辑层面控制删除的效果。\[2\] #### 引用[.reference_title] - *1* [使用MyBatis-Plus实现逻辑删除](https://blog.csdn.net/weixin_54949000/article/details/123631597)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MybatisPlus——逻辑删除实现](https://blog.csdn.net/hxxxxm_w/article/details/126929806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Mybatis-plus实现逻辑删除](https://blog.csdn.net/helloyuanye/article/details/125482936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值