mapper只继承basemapper不写代码,service值继承iservice,其实现类只在继承serviceimpl实现service,后引入mapper依赖不写其他代码,所有业务逻辑代码都在controller层,如何基于mybatis-plus实现动态的条件分页查询
时间: 2024-02-11 16:09:22 浏览: 65
可以通过在Controller层中调用Mapper层的方法,使用Mybatis-Plus的条件构造器Wrapper来实现动态的条件分页查询。
首先,需要在Controller中注入对应的Mapper和Service对象:
```
@Autowired
private MyMapper myMapper;
@Autowired
private MyService myService;
```
然后,在Controller中编写一个查询方法,接收前端传递过来的查询条件和分页参数:
```
@GetMapping("/list")
public Result<Object> list(MyCriteria criteria, Page<MyEntity> page) {
// 构造查询条件
QueryWrapper<MyEntity> wrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(criteria.getName())) {
wrapper.like("name", criteria.getName());
}
if (criteria.getStatus() != null) {
wrapper.eq("status", criteria.getStatus());
}
// 执行查询
IPage<MyEntity> data = myMapper.selectPage(page, wrapper);
// 返回结果
return Result.success(data);
}
```
其中,MyCriteria是一个DTO,用于接收前端传递过来的查询条件,例如:
```
public class MyCriteria {
private String name;
private Integer status;
// 省略getter和setter
}
```
Page是Mybatis-Plus提供的分页参数类。
最后,前端需要传递查询条件和分页参数,例如:
```
/api/my/list?name=test&status=1&page=1&size=10
```
这样就可以基于Mybatis-Plus实现动态的条件分页查询了。
阅读全文