mybatis-plus逻辑删除配置
时间: 2023-04-24 10:07:18 浏览: 259
Mybatis-Plus的逻辑删除配置可以通过在实体类中添加注解@TableLogic来实现。该注解有三个属性:value、delval和delflag。其中,value表示逻辑未删除的值,默认为;delval表示逻辑删除的值,默认为1;delflag表示逻辑删除的标志位字段名,默认为“del_flag”。
在Mapper接口中,可以使用@LogicDelete注解来指定逻辑删除的SQL语句。例如:
@LogicDelete(sql = "update user set del_flag = 1 where id=#{id}")
int deleteById(@Param("id") Long id);
这样,在执行deleteById方法时,会将id对应的记录的del_flag字段值更新为1,实现逻辑删除的效果。
相关问题
mybatis-plus-boot-starter和mybatis-plus-generator
mybatis-plus-boot-starter是MyBatis-Plus框架的一个启动器,它简化了MyBatis-Plus的配置和集成过程。通过引入mybatis-plus-boot-starter依赖,我们可以快速地集成MyBatis-Plus框架,并且可以使用MyBatis-Plus提供的各种增强功能,如自动填充、逻辑删除、乐观锁等。
mybatis-plus-generator是MyBatis-Plus框架提供的代码生成器工具,它可以根据数据库表结构自动生成对应的实体类、Mapper接口、Service接口以及Controller类等。使用mybatis-plus-generator可以大大减少手动编写重复的CRUD代码的工作量,提高开发效率。
通过mybatis-plus-generator,我们只需要配置好数据库连接信息和需要生成代码的表名,然后运行代码生成器,即可自动生成相应的代码文件。生成的代码文件可以根据需要进行修改和扩展,从而快速构建出符合业务需求的基础代码。
如何让mybatis-plus 逻辑删除需要在特定的时候不生效
在 Mybatis-Plus 中,可以通过配置 GlobalConfig 实现逻辑删除的开关控制。具体步骤如下:
1. 创建 GlobalConfig 对象
```java
GlobalConfig globalConfig = new GlobalConfig();
```
2. 配置逻辑删除
```java
globalConfig.setLogicDeleteValue("1"); // 设置逻辑删除值为1
globalConfig.setLogicNotDeleteValue("0"); // 设置逻辑未删除值为0
```
3. 配置逻辑删除开关
```java
// 设置逻辑删除开关(默认为 true)
globalConfig.setSqlInjector(new LogicSqlInjector() {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
methodList.add(new MyLogicDeleteByIdWithFill());
return methodList;
}
});
```
在上面的代码中,我们通过设置 `setSqlInjector` 方法中的 `LogicSqlInjector` 来配置逻辑删除开关。默认情况下,逻辑删除开关是打开的。如果要关闭逻辑删除,只需要将 `setSqlInjector` 方法中的 `LogicSqlInjector` 替换成默认的 `DefaultSqlInjector` 即可。
另外,如果需要在特定的时候不生效,可以通过动态修改逻辑删除开关的方式实现。具体方法是修改 `globalConfig` 对象中的 `setSqlInjector` 方法中的 `LogicSqlInjector` 对象。例如,在某个特定的时候,将 `LogicSqlInjector` 替换为默认的 `DefaultSqlInjector` 即可关闭逻辑删除。
阅读全文