PageHelper——分页工具
成员属性
//当前页
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;
引入进SpringBoot项目
一、依赖
<!--Pagehelper分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
二、web层
@GetMapping("")
public ModelAndView blogs(@RequestParam(name = "page",defaultValue = "1")Integer page,
@RequestParam(name = "size",defaultValue = "2")Integer size,
HttpSession session){
ModelAndView mv = new ModelAndView();
if (session.getAttribute("user")!=null){
List<Blog> blogs = blogService.findAll(page,size);//分页查询
PageInfo pageInfo = new PageInfo(blogs);
List<Type> types = typeService.findAllType();
mv.addObject("pageInfo",pageInfo);
mv.addObject("types",types);
mv.setViewName("admin/blogs");
return mv;
}
else{
mv.setViewName("admin");
return mv;
}
}
三、service层
//分页查询
@Override
public List<Blog> findAll(int page,int size) {
PageHelper.startPage(page,size);
return blogDao.findAll();
}
dao层正常写
pagehelper是卡住数据库这一关的插件,和前端的jqgrid分页的原理不同。