原先項目中分頁都是自己手寫的,現引用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);
}