博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis-plus实现逻辑删除
阅读量:4147 次
发布时间:2019-05-25

本文共 1080 字,大约阅读时间需要 3 分钟。

文章目录

需求说明

常规的删除为物理删除,比较暴力。使用逻辑删除的好处是可能以后要用得到某些删除的数据。 比如说 某个需求是订单编号要自增, 即使这个订单被删除了,也要从被删除的订单编号开始递增,这个时候逻辑删除就派上用场了。

逻辑删除就是在数据库中,指定某个状态位字段,约定好删除和未删除的状态。例如1是未删除, 0 是删除 。
关于mybatis-plus逻辑删除的官网:

代码实现

官方文档介绍的使用方法如下。

一共只有两步, 一个是在yml中配置, 一个是在实体类上指定某个字段用于逻辑删除
1、在项目yml中配置如下。

mybatis-plus:  mapper-locations: classpath:/mapper/**/*.xml  global-config:    db-config:      id-type: auto  #自增主键      logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)      logic-delete-value: 1 # 逻辑已删除值(默认为 1)      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)server:  port: 9898logging:  level:    com.atguigu.gulimall: debug

2、在实体类中配置如下,比如指定showStatus 为逻辑删除字段。

在这里插入图片描述

@TableLogic注解的使用方法

在这里插入图片描述
写个接口测试一下
controller层

/** * 删除 */@PostMapping("/delete")public R delete(@RequestBody Long[] catIds){    categoryService.removeMenuByIds(Arrays.asList(catIds));    return R.ok();}

Service层

@Overridepublic void removeMenuByIds(List
asList) { //TODO 1.检查当前删除的菜单, 是否被别的地方引用. //逻辑删除 baseMapper.deleteBatchIds(asList);}

使用postman进行测试

在这里插入图片描述
可以看到控制台打印的sql如下, 不是delete语句, 而是update语句
在这里插入图片描述
数据库中也把1,批量修改成了0 。说明逻辑删除成功了。
在这里插入图片描述

转载地址:http://bonti.baihongyu.com/

你可能感兴趣的文章
MySQL-数据库、数据表结构操作(SQL)
查看>>
OpenLDAP for Windows 安装手册(2.4.26版)
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>