PageHelper 插件是真的很方便,特别方便,非常方便。尽管手撸一个分页也不难,用一下limit,order 之类的SQL即可。但有简便的怎么能不用呢。
这儿就介绍一种简便的方法就行了,其他很多种很多种方法请自己查看官方文档,文档里面也有实例。
我之前在讲 mybatis 的博客中,专门提了这个组件的作者。
在Springboot里面使用,作者专门集成了springboot 使用的Maven。添加即可使用。
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelper-spring-boot-starterartifactId>
<version>最新版本version>
dependency>
最新版本查看 github
这儿如果在PageHelper 的官方页面上直接使用上面的Maven的话,会出现一个bug。
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.1.10version>
dependency>
分页会出现问题,分页没有效果,会把所有结果都返回出来。如果你是用的Springboot的话,一定要用Spring boot集成的版本Maven。
Mapper中直接将List换成Page。
public PageInfo<User> findAllConsumers(int pageNum, int pageSize){
//静态方法直接引用pageNum:页数 pageSize:每页多少数量
PageHelper.startPage(pageNum,pageSize);
PageInfo<User> pageInfo = new PageInfo<>(userMapper.selectAllUser());
return pageInfo;
}
是不是很简单
{
"total":18,
"list":[
{
"consumerId":1234,
"consumerName":"张三",
"consumerPassword":"1234"
},
{
"consumerId":17069109987,
"consumerName":"思考",
"consumerPassword":"234lk"
},
{
"consumerId":17069130001,
"consumerName":"李四",
"consumerPassword":"1234234"
},
{
"consumerId":17069130011,
"consumerName":"张三",
"consumerPassword":"1234"
},
{
"consumerId":17069130012,
"consumerName":"张三",
"consumerPassword":"1234"
}
],
"pageNum":1,
"pageSize":5,
"size":5,
"startRow":1,
"endRow":5,
"pages":4,
"prePage":0,
"nextPage":2,
"isFirstPage":true,
"isLastPage":false,
"hasPreviousPage":false,
"hasNextPage":true,
"navigatePages":8,
"navigatepageNums":[
1,
2,
3,
4
],
"navigateFirstPage":1,
"navigateLastPage":4
}
PageHelper yml中配置的话参考官方文档的参数介绍。不过基本不用设置。