版权声明
1. 本站文章和资源均来自互联网收集和整理,本站不承担任何责任及版权问题。
2. 相关版权归作者及其公司所有,仅供学习研究用途,请勿用于商业目的。
3. 若侵犯您的版权,请发邮件至webmaster@ishare1.cn联系我们,我们确认后将立即删除。
使用JAVA8的API可以实现分页,在数据量相对稳定的情况下,可以查出所有数据,配合缓存使用
import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * @version 1.0 * @author levelmini * @param*/ public class Page { private int current_page; private int size; private int total_page; private int total_sum; private transient List instanceList;//Gson不序列化transient字段 private List currentPageData; private transient Optional > op; public Page(List
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_pagethis.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 getInstanceList() { return instanceList; } public void setInstanceList(List instanceList) { this.op= Optional.ofNullable(instanceList); this.instanceList = op.orElse(new ArrayList ()); this.total_sum = this.instanceList.size(); this.total_page =(int) Math.ceil(1.0*this.total_sum/this.size); } public void setCurrentPageData(List currentPageData) { this.currentPageData = currentPageData; } public List getCurrentPageData(){ return this.currentPageData; } private List currentPageData(){ if(this.size==0 || this.total_page == 1){ return this.instanceList; } List currentPageData = new ArrayList (); instanceList.stream().skip((this.current_page-1)*this.size).limit(this.size).forEach(e->currentPageData.add(e)); return currentPageData; } }
用法:
ListnewsList = newsService.findAll(); Page page = new Page(newsList, size); page.setCurrent_page(current_page); return JsonUtil.toJson(page,"yyyy-MM-dd");