mybatisPlus 如何根据queryWrapper批量删除 service层
时间: 2024-01-23 16:03:53 浏览: 186
SpringBoot中自动去生成项目中的各层(通过MybatisPlus实现)
在 Service 层中,可以通过注入 Mapper 对象来调用 Mapper 的方法实现对数据库的操作。具体实现步骤如下:
1. 在 Service 类中注入 Mapper 对象,示例代码如下:
```java
@Service
public class MyService {
@Autowired
private EntityMapper entityMapper;
// 省略其他方法...
}
```
2. 在 Service 类中编写一个方法,用于根据条件批量删除数据,示例代码如下:
```java
@Transactional
public int deleteByQueryWrapper(QueryWrapper<Entity> queryWrapper) {
return entityMapper.delete(queryWrapper);
}
```
在上述代码中,我们使用了 `@Transactional` 注解来保证删除操作的原子性。然后调用 Mapper 的 `delete` 方法执行删除操作,并返回受影响的行数。
3. 在 Controller 类中调用 Service 的方法来实现对数据库的操作,示例代码如下:
```java
@RestController
public class MyController {
@Autowired
private MyService myService;
@DeleteMapping("/delete")
public String delete(@RequestParam("status") int status) {
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", status);
int count = myService.deleteByQueryWrapper(queryWrapper);
return "成功删除 " + count + " 条数据!";
}
}
```
在上述代码中,我们首先创建一个 `QueryWrapper` 对象,设置删除条件。然后调用 Service 的方法,传入删除条件,执行删除操作,并返回结果。
通过上述步骤,我们就可以在 Service 层中根据 `QueryWrapper` 批量删除数据。
阅读全文