#yyds干货盘点#mybatis-plus学习与实践逻辑删除

书到用时方恨少,事非经过不知难。这篇文章主要讲述#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值写错了。所以,能复制的尽量别用手敲了。

    推荐阅读