博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java分页之假分页
阅读量:5346 次
发布时间:2019-06-15

本文共 1516 字,大约阅读时间需要 5 分钟。

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

 

  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

你可能感兴趣的文章
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
常用的107条Javascript
查看>>