分页问题是一个非常普遍的问题,开发者几乎都会遇到,这里不讨论具体如何分页,说明一下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次才需要一次数据库查询操作。
优点:占用内存相对不多,提高平均查询速度。
缺点:实现起来更加复杂,可能存在脏数据,需要自己定义一个缓存集合。如果查询的数据量比较大,可以考虑采用这样方式。
分享到:
相关推荐
第一种分页实现方式是基于SQL的LIMIT和OFFSET。在Java中,我们通常会使用JDBC(Java Database Connectivity)来执行SQL查询。例如,如果我们有一个SQL查询语句用于获取所有用户,可以将其修改为分页查询,如下所示:...
本篇文章将深入探讨“简单web分页实现”的概念、原理以及实现方法。 首先,我们要理解分页的基本原理。分页通常涉及到两个主要方面:前端显示和后端数据处理。前端负责展示页面上的导航元素(如页码),并根据用户...
接下来,AspNetPager分页控件是一种专门用于分页的控件,它提供了一种简单的方式来实现数据集的分页显示。AspNetPager控件可以轻松地集成到任何数据绑定控件中,如DataList,以实现数据的分页浏览。它支持多种分页...
以下是对分页实现的详细说明: 一、基础概念 分页是将数据库查询结果分割成多个页面,每次请求只返回一部分数据,而不是一次性返回所有数据。这在Web应用中尤其常见,如搜索引擎、电商网站等,用户通常会通过点击...
本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本的分页思路,即获取总记录数、设置每页显示的记录...
三、JSP分页实现方法 1. 传统JSP+Servlet方式 - Servlet处理请求,计算页码和查询数据。 - 将数据传递给JSP,JSP负责渲染页面和生成分页链接。 - 使用request.getParameter()获取用户传递的页码信息。 2. JSP...
本主题将深入探讨`IDataReader`分页以及SQL中的三种分页方式:基于ROW_NUMBER()的分页、基于LIMIT/OFFSET的分页(在MySQL中常见)和基于游标的分页。 首先,我们来看`IDataReader`分页。`IDataReader`是.NET ...
这是一个S2SH的分页demo,数据库使用的是MySql,此demo实现了通用的分页方式,可以直接使用,也可在本demo基础上继续优化修改 此demo包含了三种方式: 1、传统方式 2、插件渲染 3、ajax方式
如果你的项目中同时包含了MyBatis,那么分页实现方式可能会有所不同。MyBatis允许我们在Mapper XML文件中编写SQL语句,通过设置参数来实现分页。例如,可以使用limit和offset关键字或者rownum伪列(根据数据库类型)...
二、前端分页实现方式 前端分页主要分为两种方式:纯前端分页和前后端联动分页。 1. 纯前端分页:所有数据一次性从后端获取,然后在前端进行分页处理。这种方式对后端压力较小,但当数据量过大时,会增加页面加载...
在这个分页实现中,Action类会执行以下操作: 1. **查询数据**:Action类会调用MyBatis的Mapper接口,传递当前页码和每页记录数作为参数,查询对应页的数据。在MyBatis中,可以通过动态SQL实现分页查询,例如使用`...
此分页实现方式的核心在于通过`NOT IN`子句排除前一页已显示的记录,从而实现数据的分页加载。这种方式避免了直接跳过大量记录的低效操作,提高了查询效率。然而,这种方法也有其局限性,尤其是在`unqid`字段上存在...
本教程将详细讲解SSH框架中的三种分页方式,并通过实例演示它们的实现过程。 ### 1. Hibernate分页 Hibernate作为SSH中的持久层框架,本身就提供了强大的查询和分页功能。我们可以通过`Query`或`Criteria`对象来...
JavaEE分页实现主要涉及到前端和后端两个层面:前端展示分页信息,后端处理分页逻辑。下面将详细介绍JavaEE分页的基本原理、实现方式以及相关的技术。 1. 分页的基本概念 分页是一种数据处理策略,用于将大量的...
总结,Java中Oracle数据库的分页实现方式多样,可以根据项目需求选择合适的工具和库。JDBC适用于简单场景,ORM框架如MyBatis和Hibernate则提供了更便捷的解决方案,Spring Data JPA在Spring生态中尤为便利。无论哪种...
至此,一个基本的SSM框架下的分页实现已经完成。但实际项目中,我们可能还需要考虑更多的细节,比如分页插件的使用(如MyBatis的PageHelper),以及对查询条件、排序方式等的处理。此外,前端分页样式和交互也需要...
本篇将介绍三种不同的分页实现方式,结合给出的文件名,我们可以推测这可能是一个基于CSS和jQuery的分页解决方案。 1. HTML静态分页: 这是最基础的分页方式,通过在HTML代码中预先定义好每个页码链接。这种方式...
二、基本的JavaScript分页实现 1. 创建HTML结构:构建分页的HTML元素,通常包括页码列表、上一页/下一页按钮等。 ```html 上一页 <span id="currentPage">1 下一页 <ul id="pageNumbers"></ul> ``` 2. ...