mybatis分页插件PageHelper使用
第一步:在pom.xml引入PageHelper的依赖
<!--分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency>
第二步:在application.yml文件中配置PageHelper分页插件
#分页插件 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql
第三步:分页插件的实体类
当前页 private int pageNum; 每页的数量 private int pageSize; 当前页的数量 private int size; //由于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 boolean isFirstPage = false; 是否为最后一页 private boolean isLastPage = false; 是否有前一页 private boolean hasPreviousPage = false; 是否有下一页 private boolean hasNextPage = false; 导航页码数 private int navigatePages; 所有导航页号 private int[] navigatepageNums;
第四步:在service层中运用
/** * 分类博客分页显示 * @param pageNum * @param pageSize * @param type * @return */ @Override public Object pageBlogType(int pageNum, int pageSize, String type) { PageHelper.startPage(pageNum, pageSize); List<Blogs> blogs = blogDao.searchTypeblog(type); PageInfo<Blogs> page = new PageInfo<>(blogs); return page; }
dao层的代码
//根据分类查询博客 List<Blogs> searchTypeblog(@Param("type") String type);
注:当一个方法中有多个查询语句时,只有紧跟在PageHelper.starPage()方法后的查询结果才会分页。
缺少以上三步都会导致分页失效