分页组件PageHelper+mybaits-plus的使用
分页方法千千万,可以做成动态sql,也有许多分页组件可以使用(Page,PgaeHelper)。
这里简单列举个例子,记录下PageHelper+mybatis-plus的用法。
1.准备工作-pom依赖
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
2.对象必须定义分页参数
/**
* 当前页,需要查询的页数
* pageNo从1开始
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableField(exist=false)
private Integer pageNo;
/**
* 每页显示的条数
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableField(exist=false)
private Integer pageSize;
3.执行代码
@BaseBeforeAnnotation
@RequestMapping("selectList")
public BaseResponse selectList(@RequestBody BookChargeModel model){
//判断是否需要用到分页
if(!StringUtils.isEmpty(model.getPageNo())){
PageHelper.startPage(model.getPageNo(),model.getPageSize());
}
//mybatis-plus拼接动态sql
QueryWrapper<BookChargeModel> queryWrapper = new QueryWrapper<BookChargeModel>();
if(!StringUtils.isEmpty(model.getBookType())){
queryWrapper.lambda().eq(BookChargeModel::getBookType,model.getBookType());
}
if(!StringUtils.isEmpty(model.getFeeType())){
queryWrapper.lambda().eq(BookChargeModel::getFeeType,model.getFeeType());
}
//列表查询
List<BookChargeModel> result = bookChargeService.list(queryWrapper);
//获取result分页信息
PageInfo pageInfo = new PageInfo(result);
return new BaseResponse(ResultEnum.SUCCESS,Integer.valueOf(String.valueOf(pageInfo.getTotal())), pageInfo.getList());
}
需要注意的是:
当传了分页参数(pageNo,pageSize)后执行list查询时,会默认查询符合条件的总数,然后再执行分页查询;
没有传分页参数,是直接执行list查询。
4.执行结果
结果一:传了分页参数
结果二:没有传分页参数