原先项目中分页都是自己手写的,现引用PageHelper工具;
maven引用如下:
<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>
在网上也翻看了很多例子,大部分代码都是先分页,然后再查询列表,2行代码,如下:
PageHelper.startPage(pageNumber,pageSize);
List<Map> list =portalMapper.queryLunboList(language);
PageInfo<Map> pageInfo = new PageInfo<>(list);
看着有些麻烦,可以写个工具类简化成一行;
用到了jdk1.8中函数编程Supplier,代码如下:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import java.util.List;
import java.util.function.Supplier;
/**
* 分页工具类
*/
public class PageUtils {
public static PageInfo generatePage(Supplier<List> supplier, int pageNum, int pageSize){
PageHelper.startPage(pageNum,pageSize);
List list = supplier.get();
return new PageInfo(list);
}
}
然后引用就方便多了,如下示例:
@Override
public PageInfo<Map> getUserList(Map params, Integer pageNum, Integer pageSize) {
return PageUtils.generatePage(()->indexMapper.getUserList(params),pageNum,pageSize);
}