从零学习springboot(五)--集成数据库分页

1、集成pagehelper starter
<!-- 4.1、集成分页功能starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
2、集成pageHelper
<!-- 4.2、分页功能 pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.3</version>
</dependency>
3、新建一个分页返回的视图对象
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//排序
private String orderBy;

//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据"

//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;

//第一页
private int firstPage;
//前一页
private int prePage;
//下一页
private int nextPage;
//最后一页
private int lastPage;

//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
4、集成AOP功能
<!-- 5、 AOP集成 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
5、建立AOP对象进行切面启动分页
@Aspect
@Component
public class PaginationFilter {
@Pointcut("execution(* club.isource.platform.dao.mapper.*.select*(..))") // the pointcut expression
private void pagination() {}// the pointcut signature
@Before("pagination()")
public void startPagination(){
// 1、获取分页请求参数
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
if (attributes == null) {
return;
}
HttpServletRequest request = ((ServletRequestAttributes) attributes).getRequest();
String page = request.getParameter("page");
String pageSize = request.getParameter("pageSize");
if (StringUtils.isEmpty(page)) {
page = "1";
}
if (StringUtils.isEmpty(pageSize)) {
pageSize = "10";
}
// 2、启动分页
PageHelper.startPage(Integer.valueOf(page), Integer.valueOf(pageSize));
}
}

猜你喜欢

转载自blog.csdn.net/gosenkle/article/details/80291076