JAVA8的分页工具
程序员文章站
2022-03-27 09:50:44
...
使用JAVA8的API可以实现分页,在数据量相对稳定的情况下,可以查出所有数据,配合缓存使用
import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * @version 1.0 * @author levelmini * @param <T> */ public class Page<T> { private int current_page; private int size; private int total_page; private int total_sum; private transient List<T> instanceList;//Gson不序列化transient字段 private List<T> currentPageData; private transient Optional<List<T>> op; public Page(List<T> instanceList,int size) { this.size = size; setInstanceList(instanceList); } public int getCurrent_page() { return current_page; } public void setCurrent_page(int current_page) { this.current_page = current_page<1?1:current_page>this.total_page?this.total_page:current_page; setCurrentPageData(currentPageData()); } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getTotal_page() { return total_page; } public int getTotal_sum() { return total_sum; } public List<T> getInstanceList() { return instanceList; } public void setInstanceList(List<T> instanceList) { this.op= Optional.ofNullable(instanceList); this.instanceList = op.orElse(new ArrayList<T>()); this.total_sum = this.instanceList.size(); this.total_page =(int) Math.ceil(1.0*this.total_sum/this.size); } public void setCurrentPageData(List<T> currentPageData) { this.currentPageData = currentPageData; } public List<T> getCurrentPageData(){ return this.currentPageData; } private List<T> currentPageData(){ if(this.size==0 || this.total_page == 1){ return this.instanceList; } List<T> currentPageData = new ArrayList<T>(); instanceList.stream().skip((this.current_page-1)*this.size).limit(this.size).forEach(e->currentPageData.add(e)); return currentPageData; } }
用法:
List<News> newsList = newsService.findAll(); Page<News> page = new Page<>(newsList, size); page.setCurrent_page(current_page); return JsonUtil.toJson(page,"yyyy-MM-dd");
以上就是JAVA8的分页工具的详细内容,更多请关注其它相关文章!
上一篇: JavaScript预编译原理分析
下一篇: linux怎么查看进程号并杀死进程
推荐阅读
-
CodeIgniter框架下的一个可以显示函数调用栈的调试工具叫什么名字
-
Maligno 一个开源的渗透测试工具
-
安全测试工具IBM Rational AppScan中文版的使用教程
-
用C实现PHP扩展 Image_Tool 图片常用处理工具类的使用
-
利用MySQL的一个特性实现MySQL查询结果的分页显示_MySQL
-
Sql Server2005 的快速分页 ROW_NUMBER() OVER (ORDER BY Report
-
ThinkPHP的分页是怎么实现的
-
再推荐十款免费的php开发工具_PHP
-
8个提高效率的CSS实用工具_html/css_WEB-ITnose
-
【大家的项目】 Rust nom 实现的 mysql binlog 解析工具