这是vo类 @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO { @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; } 帮我用mybatis-plus写个逻辑删除,在service里面写
时间: 2023-11-22 21:54:47 浏览: 66
好的,你可以参考以下代码实现逻辑删除:
在实体类中,添加逻辑删除注解:
```java
@TableName(value = "bis_task")
public class BisTaskVO extends PageReqVO {
@ApiModelProperty(value = "逻辑删除 1是 0否")
@TableLogic
private Integer isDel;
// 其他属性
}
```
在 Service 类中,调用 MyBatis-Plus 提供的 delete 方法进行逻辑删除:
```java
@Service
public class BisTaskServiceImpl implements BisTaskService {
@Autowired
private BisTaskMapper bisTaskMapper;
@Override
public boolean deleteById(Long id) {
return bisTaskMapper.deleteById(id) > 0;
}
// 更多方法
}
```
这样,在调用 `deleteById` 方法时,会自动进行逻辑删除,不会真正地从数据库中删除数据。
相关问题
这是vo类 @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO { @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; } 帮我用mybatis-plus写个逻辑删除
好的,你可以按照以下步骤使用Mybatis-Plus实现逻辑删除:
1. 在实体类中添加逻辑删除字段
```java
@Data
@ApiModel(value = "飞行任务管理-后端列表页vo")
public class BisTaskVO extends PageReqVO {
@ApiModelProperty(value = "逻辑删除 1是 0否")
@TableLogic // 添加逻辑删除注解
private Integer isDel;
}
```
2. 配置Mybatis-Plus逻辑删除插件
```java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisPlusConfig {
// 配置逻辑删除插件
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
// 配置分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
3. 执行逻辑删除操作
```java
@Service
public class BisTaskService {
@Autowired
private BisTaskMapper bisTaskMapper;
public boolean deleteById(Long id) {
int rows = bisTaskMapper.deleteById(id);
return rows > 0;
}
}
```
当执行删除操作时,Mybatis-Plus会自动将逻辑删除字段设置为1,而不是真正从数据库中删除该记录。如果需要查询已删除的记录,可以使用Mybatis-Plus提供的恢复逻辑删除的方法。
@Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; } 这是个VO类,用mybatis-plus写个批量逻辑删除
可以使用 MyBatis-Plus 提供的 `IService` 接口中的 `removeByIds` 方法来实现批量逻辑删除。具体实现步骤如下:
1. 在 `BisTaskMapper` 接口中新增一个方法 `deleteBatchLogicByIds`,用于批量逻辑删除任务。方法定义如下:
```java
public interface BisTaskMapper extends BaseMapper<BisTask> {
int deleteBatchLogicByIds(@Param("ids") List<Integer> ids);
}
```
2. 在 `BisTaskServiceImpl` 实现类中,注入 `BisTaskMapper` 接口,并实现 `deleteBatchLogicByIds` 方法。方法定义如下:
```java
@Service
public class BisTaskServiceImpl extends ServiceImpl<BisTaskMapper, BisTask> implements BisTaskService {
@Autowired
private BisTaskMapper bisTaskMapper;
@Override
public boolean deleteBatchLogicByIds(List<Integer> ids) {
return bisTaskMapper.deleteBatchLogicByIds(ids) > 0;
}
}
```
3. 在控制器中调用 `deleteBatchLogicByIds` 方法实现批量逻辑删除。示例代码如下:
```java
@RestController
@RequestMapping("/task")
public class BisTaskController {
@Autowired
private BisTaskService bisTaskService;
@PostMapping("/deleteBatch")
public Result deleteBatch(@RequestBody List<Integer> ids) {
if (CollectionUtils.isEmpty(ids)) {
return Result.fail("参数错误");
}
// 批量逻辑删除任务
boolean success = bisTaskService.deleteBatchLogicByIds(ids);
if (success) {
return Result.success();
}
return Result.fail("删除失败");
}
}
```
注意事项:
- `BisTask` 实体类中需要有 `isDel` 属性用于记录逻辑删除状态。
- 执行批量逻辑删除时,需要传入待删除任务的 id 列表。
- 执行成功时,返回 `Result.success()`,否则返回 `Result.fail()`。
阅读全文