PageHelper在SpringBoot+Mybatis中合理且规范的使用方法
PageHelper
一. 开发准备
1. 开发工具
2. 开发环境
3. 开发依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency>
二. 技术文档
1. 基于SpringBoot
2. 基于MyBatis
3. 集成PageHelper
三. 应用讲解
1. 基本使用
在实际项目运用中,PageHelper的使用非常便利快捷,仅通过PageInfo
+ PageHelper
两个类,就足以完成分页功能,然而往往这种最简单的集成使用方式,却在很多实际应用场景中,没有得到充分的开发利用.
接下来是我们最常见的使用方式:
public PageInfo<ResponseEntityDto> page(RequestParamDto param) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<ResoinseEntityDto> list = mapper.selectManySelective(param);
PageInfo<ResponseEntityDto> pageInfo = (PageInfo<ResponseEntityDto>)list;
return pageInfo;
}
在某种程度上而言,上述写法的确是符合PageHelper的使用规范 :
在集合查询前使用
PageHelper.startPage(pageNum,pageSize)
,并且中间不能穿插执行其他SQL
但是作为Developer的我们,往往只有在追求完美和极致的道路上才能够寻得突破和机遇;
以下是合理且规范的基本使用:
public PageInfo<ResponseEntityDto> page(RequestParamDto param) {
return PageHelper.startPage(param.getPageNum(), param.getPageSize())
.doSelectPageInfo(() -> list(param))
}
public List<ResponseEntityDto> list(RequestParamDto param) {
return mapper.selectManySelective(param)