`
greenwen
  • 浏览: 216997 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分页实现的三种方式

    博客分类:
  • java
阅读更多
分页问题是一个非常普遍的问题,开发者几乎都会遇到,这里不讨论具体如何分页,说明一下Web方式下分页的原理。首先是查询获得一个结果集(表现为查询数据库获得的结果),如果结果比较多我们一般都不会一下显示所有的数据,那么就会用分页的方式来显示某些数据(比如20条)。因为Http的无状态性,每一次提交都是当作一个新的请求来处理,即使是换页,上一次的结果对下一次是没有影响的。

这里总结三种实现分页的方式,不知道还有没有别的!
1.每次取查询结果的所有数据,然后根据页码显示指定的纪录。
2.根据页面只取一页数据,然后显示这一页,这里要构造sql语句。
3.取一定页数的数据,就是前面两种的折中。

这里还要注意的是这些数据是放在request还是session中,这里一一讨论

1.一般不会放在session中,因为会占用大量内存,所以要放在request里面。
优点:实现比较简单,查询速度比较快。
缺点:占用内存多一些,网络传输数据多。
对于数据量比较少的查询这种方法比较合适。这里有人把数据放在session中,这样换页的时候就不用重新查询,但是这样是极其不好的,强烈建议不要这样使用。

2.肯定不会放在session中,因为放在session中没有意义。
优点:占用内存少。
缺点:比较麻烦,必须先获得查询结果的总数,因为要知道有多少纪录才知道有多少页。另外要构造分页查询语句,对于不同的数据库是不一样的。

3.这种情况是肯定放在session中了,要不然我干吗取好几页呀,这样的实现是为了减少数据库查询的次数,比如我保存第1到10的纪录,那么换页的时候如果在1到10之间就可以直接从session获取。如果换到11页,我可以重新设置缓存11到
20页的数据(或者5到15页的数据),这样的话换10次才需要一次数据库查询操作。
优点:占用内存相对不多,提高平均查询速度。
缺点:实现起来更加复杂,可能存在脏数据,需要自己定义一个缓存集合。如果查询的数据量比较大,可以考虑采用这样方式。
分享到:
评论

相关推荐

    三种方式实现分页

    Java分页

    S2SH分页实例_三种方式

    这是一个S2SH的分页demo,数据库使用的是MySql,此demo实现了通用的分页方式,可以直接使用,也可在本demo基础上继续优化修改 此demo包含了三种方式: 1、传统方式 2、插件渲染 3、ajax方式

    简单web分页实现

    NULL 博文链接:https://wuxw920.iteye.com/blog/1073296

    操作系统 程实现请求分页存储管理页面Optimal、FIFO、LRU置换算法

    目的:(1)通过编写程序实现请求分页存储管理页面Optimal、FIFO、LRU调度算法,使学生掌握虚拟存储管理中有关缺页处理方法等内容,巩固有关虚拟存储管理的教学内容。 (2)了解Windows2000/XP中内存管理机制,掌握...

    MySQL实现递归查询的三种方式.rar

    MySQL递归查询 三种实现方式,方式一:使用自定义函数实现,方式二:纯SQL实现,方式三:适用于MySQL8及以上使用 WITH RECURSIVE实现

    编程演示三种存储管理方式的地址换算过程 源文件+报告

    编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。Switch函数...

    分页AspNetPager

    一种是通过Url来实现分页以及Url重写功能 二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何...

    C#自定义分页控件

    一种是通过Url来实现分页以及Url重写功能 二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何数据...

    lucene查询结果集分页代码

    在lucene搜索分页过程中,可以有两种方式 一种是将搜索结果集直接放到session中,但是假如结果集非常大,同时又存在大并发访问的时候,很可能造成服务器的内存不足,而使服务器宕机 还有一种是每次都重新进行搜索,这样...

    【JavaScript源代码】jquery+Ajax实现简单分页条效果.docx

    jquery+Ajax实现简单分页条效果 ...当然了,JSP页面两种方式都是可以使用的。 三、分页条,这里我是用Ajax和Jquery去做的。实现起来比较繁琐,代码特别长,因为都是拼接一大堆的字符串,然后使用html

    Android编程演示三种存储管理方式的地址换算过程

    编程演示三种存储管理方式的地址换算过程 1、分页方式的地址换算 2、分段方式的地址换算 3、段页式的地址换算

    分页存储管理方式原理、分段存储管理方式原理、段页式存储管理方式原理

    分页存储管理方式原理、分段存储管理方式原理、段页式存储管理方式原理介绍及实现,编程演示三种存储管理方式的地址换算过程

    三种存储管理方式的地址换算过程

     编程演示三种存储管理方式的地址换算过程,分别是:分页式地址换算,分段式地址换算和段页式地址换算。七.程序及运行结果 import java.util.*; class Ya{ void print(){ System.out.println("************...

    Hibernate中的query 分页.doc

    3.在数据库进行分页是首选的方式。数据库分页实际上是利用数据库本身SQL扩展的功能进行分页,例如MySQL的 limit 0,50这样的SQL语句。不但速度快,而且非常节省内存。不过不是每种数据库的都有这种分页支持的SQL,...

    操作系统实验4-请求分页存储管理模拟实验.doc

    操作系统实验4-请求分页存储管理模拟实验.doc

    操作系统课程设计1、分页方式的地址换算2、分段方式的地址换算

    1、分页方式的地址换算 2、分段方式的地址换算 3、段页式的地址换算 三、程序运行 1、 分页式地址转换: 数据: 逻辑地址:223、页面大小:23 2、 分段式地址转换 数据: 逻辑地址段号:223、段内地址:23 3、...

    小贤PHP通用分页程序 v1.0

    的分页都是使用本程序来实现的。 程序的优点:可用于伪静态、静态和动态分页用,采用DIV+CSS设计,兼容各常用浏览器; 安装步骤如下: 第一步:解压压缩包后,您会发现一个“news.sql”的SQL数据的文件,先在你...

    操作系统综合实践三种存储管理的地址换算过程C++实现带论文

    由于连续分配方式会形成许多“碎片”,虽然可通过“紧凑”的方法...根据离散的单位不同产生了分页和分段式存储管理,又由他们的结合产生了段页式存储管理,本论文研究的是用C++语言描述这三种存储管理的地址换算过程。

    winform分页控件,美观;

    背景:由于项目需要,要用winform展示数据,本来想做滚动动态加载数据,但是发现如果数据量较少的时候,滚动条不显示,也就没法判断滚动条是否到底,最后只能采用分页的方式;网上找了很多,外观都不是很满意,遂...

    PHP开发实用分页程序

    程序的演示效果您可以登录到淘宝网寻宝客(http://www.xunbaoke.com)上操作体验,寻宝客网站所有的分页都是使用本程序来实现的。 程序的优点:可用于伪静态、静态和动态分页用,采用DIV+CSS设计,兼容各常用浏览器;...

Global site tag (gtag.js) - Google Analytics