PageHelper分页
搞了一上午分页总算搞明白了...以下是boot配置pagehelper全过程以及遇到的一些页面不能正常分页的问题。
pom文件依赖:引入分页插件
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency>
properties配置项:分页插件参数配置
pagehelper.page-size-zero=true pagehelper.helper-dialect=mysql
使用PageHelper进行分页
在boot测试类中测试
//启用PageHelper PageHelper.startPage(1,5); //查询 List<DiscussPost> list = discussPostMapper.selectDiscussPosts(0); //返回 PageInfo<DiscussPost> postPageInfo = new PageInfo<>(list); // postPageInfo.toString(); // System.out.println(postPageInfo.getNavigateFirstPage()); //输出分页数据 for(DiscussPost discussPost:postPageInfo.getList()) System.out.println(discussPost);
以上是正常的PageHelper使用方法,查询必须在启用和返回之间,这样list得到的数据才是PageHelper处理过后的分页数据,虽然不知道具体怎么实现的....一开始我进行分页的时候查询代码写在了启用PageHelper代码的上方,就导致分页数据不管用,每次返回的都是整个表的数据,而不是规定的PageSize中的数据,经过长时间的debug和查google,最后还是看官方文档解决了问题....
以下是官方文档中的部分摘录
https://pagehelper.github.io/docs/howtouse/ PageHelper.startPage 静态方法调用 除了 PageHelper.startPage 方法外,还提供了类似用法的 PageHelper.offsetPage 方法。 在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方***被进行分页。 例一: //获取第1页,10条内容,默认查询总数count PageHelper.startPage(1, 10); //紧跟着的第一个select方***被分页 List<Country> list = countryMapper.selectIf(1); assertEquals(2, list.get(0).getId()); assertEquals(10, list.size()); //分页时,实际返回的结果list类型是Page<E>,如果想取出分页信息,需要强制转换为Page<E> assertEquals(182, ((Page) list).getTotal());