书到用时方恨少,事非经过不知难。这篇文章主要讲述#yyds干货盘点#mybatis-plus学习与实践逻辑删除相关的知识,希望能为你提供帮助。
在我们日常开发中,为了保留数据,经常会使用逻辑删除的方式进行数据删除,而mybatis-plus正好也提供了这一功能,在第一节中生成代码的时候,我们指定了逻辑删除字段的值,代码如下:
StrategyConfig sc = new StrategyConfig();
sc.setCapitalMode(false);
//是否大写命名 默认false
sc.setSkipView(true);
//是否跳过试图 默认false
sc.setNaming(NamingStrategy.underline_to_camel);
// 表映射 驼峰命名
sc.setColumnNaming(NamingStrategy.underline_to_camel);
// 字段映射 驼峰
sc.setEntityLombokModel(true);
//默认false
sc.setRestControllerStyle(true);
// 默认false
sc.setEntitySerialVersionUID(true);
//默认true
sc.setEntityColumnConstant(true);
//默认false
sc.setInclude("student");
//表名,用,隔开需要生产
//sc.setExclude("");
//不需要生成二选一
sc.setEntityTableFieldAnnotationEnable(true);
// 默认false 注释
sc.setControllerMappingHyphenStyle(false);
//默认false
sc.setLogicDeleteFieldName("status");
// 逻辑删除字段名称
generator.setStrategy(sc);
我们将status指定为逻辑删除字段,接下来我们看看生成的实体类,发现生成实体的时候在status上多了一个注解@TableLogic,这个注解就是把这个字段标识为逻辑删除。
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("student")
@ApiModel(value="https://www.songbingjia.com/android/Student对象", description="")
public class Student implements Serializable private static final long serialVersionUID = 1L;
@TableId(value = "https://www.songbingjia.com/android/id", type = IdType.ID_WORKER_STR)
private String id;
@TableField("age")
private Integer age;
@TableField("name")
private String name;
@TableField("tel")
private String tel;
@TableField("father_name")
private String fatherName;
@ApiModelProperty(value = "https://www.songbingjia.com/android/1:正常;-1:删除")
@TableField("status")
@TableLogic
private Integer status;
然后再看看properties.yml文件
mybatis-plus:
global-config:
db-config:
logic-delete-value: -1 #逻辑已删除值(默认为1)
logic-not-delete-value: 1 #逻辑未删除值(默认为0)
status=-1为删除,status=1为正常。接下来测试下效果
@Test
public void studentDelete()int i = studentMapper.deleteById("1");
System.out.println(i+"------------------/n");
@Test
public void studentDeletes()boolean b = studentService.removeById("1");
System.out.println(b);
测试后发现,在service和mapper中的删除方法都可以删除。
【#yyds干货盘点#mybatis-plus学习与实践逻辑删除】注:1、本文所用到的mybatis-plus版本是3.1.1。
2、在测试过程中发现自定义的逻辑删除值并没有生效,经过在官网上查找了一番,才发现是配置文件中的key值写错了。所以,能复制的尽量别用手敲了。
推荐阅读
- 算法与正则表达式
- 准时下班系列!Excel合集之第3集—VBA怎么做双条件受控动态图表
- Linux基础(目录索引)
- #yyds干货盘点#linux命令--cat
- 百度智能云实战——静态文件CDN加速
- centos8.5 配置vsftpd的SSL/TLS功能
- Linux之head命令
- #yyds干货盘点#-win10磁盘检查命令
- #yyds干货盘点#JavaScript数值范围