java分页之假分页

假分页,顾名思义,不是真正的在数据库里进行过滤,而是从数据库查询之后,取得全部结果,在展现的时候做些手脚。

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. public class Pager {  
  5.       
  6.     /** 
  7.      * 当前页码 
  8.      */  
  9.     private int currentPage;  
  10.     /** 
  11.      * 总页数 
  12.      */  
  13.     private int totalPage;  
  14.     /** 
  15.      * 总行数 
  16.      */  
  17.     private int totalRows;  
  18.     /** 
  19.      * 每页显示条数 
  20.      */  
  21.     private int avgRows = 5;  
  22.     /** 
  23.      * 原集合 
  24.      */  
  25.     private List list;  
  26.   
  27.     public Pager() {  
  28.         super();  
  29.     }  
  30.       
  31.     public Pager(int currentPage, int avgRows, List list) {  
  32.         super();  
  33.         this.currentPage = currentPage;  
  34.         this.avgRows = avgRows;  
  35.         this.list = list;  
  36.         this.totalRows = list.size();  
  37.         this.totalPage = (this.totalRows - 1) / this.avgRows + 1;  
  38.     }  
  39.   
  40.     public List getPagerList() {  
  41.         List newList = new ArrayList();  
  42.         for(int i = (currentPage - 1) * avgRows; i < totalRows && i < currentPage * avgRows; i++) {  
  43.             newList.add(list.get(i));  
  44.         }  
  45.         return newList;  
  46.     }  
  47.       
  48.     public int getCurrentPage() {  
  49.         return currentPage;  
  50.     }  
  51.     public void setCurrentPage(int currentPage) {  
  52.         this.currentPage = currentPage;  
  53.     }  
  54.     public int getTotalPage() {  
  55.         return totalPage;  
  56.     }  
  57.     public void setTotalPage(int totalPage) {  
  58.         this.totalPage = totalPage;  
  59.     }  
  60.     public int getAvgRows() {  
  61.         return avgRows;  
  62.     }  
  63.     public void setAvgRows(int avgRows) {  
  64.         this.avgRows = avgRows;  
  65.     }  
  66.   
  67.     public int getTotalRows() {  
  68.         return totalRows;  
  69.     }  
  70.   
  71.     public void setTotalRows(int totalRows) {  
  72.         this.totalRows = totalRows;  
  73.     }  
  74.   
  75.     public List getList() {  
  76.         return list;  
  77.     }  
  78.   
  79.     public void setList(List list) {  
  80.         this.list = list;  
  81.     }  
  82.   
  83. }  

这是一个简单的分页器,原理很简单,将从数据库查询的数据,传入到分页器里,返回的是分好页的集合。 

这种方法不适用于大批量数据。

原文地址:http://www.cnblogs.com/ghsau/archive/2012/02/08/2768571.html

原文地址:https://www.cnblogs.com/zhxn/p/6944480.html