CN104298788B - 一种分页查询方法和系统 - Google Patents
一种分页查询方法和系统 Download PDFInfo
- Publication number
- CN104298788B CN104298788B CN201410640446.0A CN201410640446A CN104298788B CN 104298788 B CN104298788 B CN 104298788B CN 201410640446 A CN201410640446 A CN 201410640446A CN 104298788 B CN104298788 B CN 104298788B
- Authority
- CN
- China
- Prior art keywords
- paging
- line number
- record
- result set
- sql statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/2454—Optimisation of common expressions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开的分页查询方法和系统,包括接收应用层的应用服务所发送的查询请求,该请求包括分页号、分页记录数和查询条件;之后,基于查询请求中所包括的分页号、分页记录数,对符合查询条件的结果集执行切分过程,具体地,例如计算分页号对应的行号区间、依据行号区间获取分页号对应的分页查询结果集等;最终,向应用服务返回包含了分页查询结果集的响应信息,以使应用服务实现结果集的分页展示。实际应用场景中,可将本发明作为应用层与数据库间的服务层,为应用层提供分页查询服务,从而,本发明实现了将切分结果集的过程抽取为应用层之外且可被应用层调用的一个通用功能,避免了各应用服务间不必要的重复开发工作,提升了应用服务的开发效率。
Description
技术领域
本发明属于数据库的分页查询技术领域,尤其涉及一种分页查询方法和系统。
背景技术
分页浏览功能是一种常见的Web应用功能,当用户需要浏览大量数据时,可通过分页浏览功能对结果集进行逐页查看。
分页浏览功能的实现需要依据分页记录数(即每页最多可包含的记录数)及指定的分页号,对符合查询条件的结果集(包括多条记录)执行切分过程,以实现指定分页号记录的获取。目前,结果集的切分过程由应用层的应用服务(查询服务)进行,从而,增加了应用服务开发人员的工作负担,降低了应用服务的开发效率;同时,底层数据库与应用层的应用服务间往往为一对多的关系,各应用服务间结果集切分功能的重复性开发,也造成了不必要的资源浪费。
发明内容
有鉴于此,本发明的目的在于提供一种分页查询方法和系统,以实现将切分结果集的过程抽取为应用层之外且可被应用层调用的一个通用功能,进而避免各应用服务间不必要的重复开发工作,提升应用服务的开发效率。
为此,本发明公开如下技术方案:
一种分页查询方法,包括:
接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;
获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
上述方法,优选的,所述获取数据库中符合所述查询条件的记录的总数,包括:
从所述查询请求中过滤出所述查询条件;
依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
利用所创建的查询总记录数SQL语句,从数据库中统计出符合所述查询条件的记录的总数。
上述方法,优选的,所述开始行号计算公式为所述结束行号计算公式为e=min(s+n,N);
其中,s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号。
上述方法,优选的,所述结果集中第m条记录的行号为m-1,其中,0<m≤N。
上述方法,优选的,所述从结果集中获取行号不小于所述开始行号且不大于所述结束行号的各条记录,包括:
利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
上述方法,优选的,所述响应信息还包括总记录数、总页数、当前页所包含的记录数、当前页数。
一种分页查询系统,其特征在于,包括:
接收模块,用于接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
第一获取模块,用于获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
计算模块,用于基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;
第二获取模块,用于获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
发送模块,用于向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
上述系统,优选的,所述第一获取模块,包括:
过滤单元,用于从所述查询请求中过滤出所述查询条件;
第一创建单元,用于依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
统计单元,用于利用所创建的查询总记录数SQL语句从数据库中统计出符合所述查询条件的记录的总数。
上述系统,优选的,所述第二获取模块,包括:
第二创建单元,用于利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
修改单元,用于基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
查询单元,用于利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
由以上方案可知,本发明包括接收应用层的应用服务所发送的查询请求,该请求包括分页号、分页记录数和查询条件;之后,基于查询请求中所包括的分页号、分页记录数,对符合查询条件的结果集执行切分过程,具体地,例如计算所述分页号对应的行号区间、依据计算的行号区间获取所述分页号对应的分页查询结果集等;最终,向应用服务返回包含了分页查询结果集的响应信息,以使应用服务实现结果集的分页展示。实际应用场景中,可将本发明作为应用层与数据库之间的一个服务层,为应用层提供分页查询服务,从而,本发明实现了将切分结果集的处理过程抽取为应用层之外且可被应用层调用的一个通用功能,避免了各应用服务间不必要的重复开发工作,提升了应用服务的开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一公开的分页查询方法的流程图;
图2是本发明实施例一公开的服务层与应用层及数据库间的交互示意图;
图3是本发明实施例一公开的服务层的工作原理示意图;
图4是本发明实施例二公开的分页查询系统的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
分页查询:根据指定的页号和页面记录数查询所需的数据,区别于从数据库中查询满足条件的全量数据。
数据伪列:用户不需要处理而由数据库自行维护的数据列。
ROWNUM:数据库为每一个显示的查询记录自动生成的行号。
SQL:Structured Query Language,结构化查询语言。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例一公开一种分页查询方法。
当用户需要使用分页浏览功能对大量数据进行分页浏览时,为了将查询结果按照指定分页号发送给应用服务的前端页面供用户查看,需要对数据库中符合查询条件的结果集执行切分过程,这时就会使用到数据伪列——ROWNUM列,ROWNUM是伴随着查询由数据库自动生成的行号,其中,数据库为符合查询条件的结果集中的每条记录生成一个唯一的ROWNUM,且结果集中各条记录的ROWNUM从0开始取值,并以增量1依次递增。
切分结果集时,根据ROWNUM、分页号、每页记录数就可以计算出本次分页查询所需要的具体行号区间,然后根据计算得到的行号区间,改写查询的SQL语句(将普通查询SQl语句改写成分页查询SQL语句),便可以得到分页的查询结果。现有技术中,结果集的切分过程所包括的计算行号区间、改写SQL语句等操作均需应用服务来完成,从而导致应用服务的开发效率较低,同时也导致了应用层中各个应用服务间结果集切分功能的重复性开发。
为了解决上述问题,本发明将切分结果集的过程抽取为应用层之外且可被应用层调用的一个通用功能,以下对本发明方法进行详细说明。
参考图1,本发明的分页查询方法可以包括以下步骤:
S101:接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件。
在用户有分页浏览需求,并在应用服务的用户界面上触发分页浏览的查询请求后,本步骤S101接收应用服务的查询请求,该查询请求中包括分页号、分页记录数及相应的查询条件,其中,分页号是指应用服务的用户所指定的需进行信息浏览的目的页号,分页记录数是指分页浏览时,每页最多可包含的记录数。
本实施例采用报文的形式对查询请求所包括的各项信息进行封装,具体将分页号、分页记录数这两项分页参数封装在报文头部的分页参数域中,将查询条件封装在报文体中。
S102:获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数。
具体地,可首先从接收的请求报文中过滤出所述查询条件,并从应用服务提供的存储路径中获取应用服务预先存储的查询总记录数SQL语句的语句格式;之后,可依据所述语句格式,创建所述查询条件所对应的查询总记录数SQL语句。
在此基础上,可利用创建的查询总记录数SQL语句从数据库中统计出符合所述查询条件的总记录数。
S103:基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号。
本实施例所采用的开始行号计算公式和结束行号计算公式分别为以下的式(1)和式(2):
e=min(s+n,N) (2)
其中,s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号。
通过以上的式(1)和式(2),还可以将不合法的分页参数(例如分页记录数为0时)过滤掉,从而得到有效的行号区间[s,e]。
S104:获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号。
在以上各步骤的基础上,本步骤首先依据应用服务所提供的存储路径获取应用服务预先存储的普通查询SQL语句的语句格式,并利用该格式为本次请求所携带的查询条件创建相应的普通查询SQL语句;之后,利用计算得出的开始行号s和结束行号e将该普通的查询SQL改写为ROWNUM位于区间[s,e]的查询SQL,得到可实现分页查询的分页查询SQL,修改后的分页SQL示例如下:
select*from(selectrownumas_id,t.*from s00t1_tbl)where_id>=s and_id<=e。
接下来,可利用修改后的分页查询SQL对数据库进行查询,最终实现从符合查询条件的结果集中获取行号位于区间[s,e]的所有记录,得到分页查询结果集,所述分页查询结果集中的各条记录即为应用服务用户所请求的目标页记录。
S105:向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
在以上步骤的基础上,本步骤采用报文形式对查询所得的分页查询结果集以及总记录数、总页数、当前页所包含的记录数、当前页数进行封装,得到响应报文,具体地,可将总记录数、总页数、当前页所包含的记录数、当前页数(即分页号)封装在响应报文头部的分页结果参数域中,将分页查询结果集封装在响应报文的报文体中,之后,将封装好的响应信息反馈至应用层的应用服务,以使应用服务在跳转的当前页中显示所述分页查询结果集,供用户浏览,最终实现了查询数据(结果集)的分页展示。
参考图2,实际应用场景中,可将本发明作为应用层与数据库之间的一个服务层,且可将该服务层作为数据库方的服务接口为应用层的各个应用服务所调用,实现为应用层的各应用服务提供分页查询功能。参考图3所示的服务层工作原理,在服务层中可实现计算行号区间,修改查询SQL语句,利用修改后所得的分页查询SQL语句查询数据库以及设置分页结果参数等过程。
本发明不限于某种固定的展示渠道,可以广泛适用于多种类型的请求渠道,如柜面渠道、电子银行渠道等。基于在请求报文中进行分页查询参数域设计,在响应报文中进行分页结果参数域设计,服务层可在每次接收到应用层的查询请求时读取请求报文中的分页参数,并在查询返回时设置分页结果参数,实现了调用者(应用层)透明的自动分页机制,且可以适用于任何符合报文规范的查询请求。
由以上方案可知,本发明包括接收应用层的应用服务所发送的查询请求,该请求包括分页号、分页记录数和查询条件;之后,基于查询请求中所包括的分页号、分页记录数,对符合查询条件的结果集执行切分过程,具体地,例如计算所述分页号对应的行号区间、依据计算的行号区间获取所述分页号对应的分页查询结果集等;最终,向应用服务返回包含了分页查询结果集的响应信息,以使应用服务实现结果集的分页展示。可见,本发明实现了将切分结果集的处理过程抽取为应用层之外且可被应用层调用的一个通用功能,避免了各应用服务间不必要的重复开发工作,提升了应用服务的开发效率。
实施例二
本实施例二公开一种分页查询系统,所述系统与实施例一公开的分页查询方法相对应,参考图4,所述系统包括接收模块100、第一获取模块200、计算模块300、第二获取模块400和发送模块500。
接收模块100,用于接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件。
第一获取模块200,用于获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数。
其中,第一获取模块200包括过滤单元、第一创建单元和统计单元。
过滤单元,用于从所述查询请求中过滤出所述查询条件;
第一创建单元,用于依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
统计单元,用于利用所创建的查询总记录数SQL语句从数据库中统计出符合所述查询条件的记录的总数。
计算模块300,用于基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号。
第二获取模块400,用于获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号。
其中,第二获取模块400包括第二创建单元、修改单元和查询单元。
第二创建单元,用于利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
修改单元,用于基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
查询单元,用于利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
发送模块500,用于向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
对于本发明实施例二公开的分页查询系统而言,由于其与实施例一公开的分页查询方法相对应,所以描述的比较简单,相关相似之处请参见实施例一中分页查询方法部分的说明即可,此处不再详述。
综上所述,本发明将切分结果集的过程抽取为应用层之外且可被应用层调用的一个通用功能,即将结果集切分的步骤放在数据库方的服务层中进行,而不是交由应用服务执行,大大减少了数据的传输量,提升了交易效率。而对于应用服务的开发人员来说,其只需要提供普通的SQL查询语句和统计总记录数的SQL查询语句,便可通过调用数据库方的服务层完成自动分页工作,减轻了应用服务开发人员的工作负担,提升了应用服务的开发效率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种分页查询方法,其特征在于,应用于服务层,所述服务层处于应用层与数据库之间,且服务层作为数据库方的服务接口,用于为应用层的多个应用服务提供通用的分页查询服务,所述方法包括:
接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;其中,所述开始行号计算公式为所述结束行号计算公式为e=min(s+n,N);所述s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号;
获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
2.根据权利要求1所述的方法,其特征在于,所述获取数据库中符合所述查询条件的记录的总数,包括:
从所述查询请求中过滤出所述查询条件;
依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
利用所创建的查询总记录数SQL语句,从数据库中统计出符合所述查询条件的记录的总数。
3.根据权利要求1所述的方法,其特征在于,所述结果集中第m条记录的行号为m-1,其中,0<m≤N。
4.根据权利要求3所述的方法,其特征在于,所述从结果集中获取行号不小于所述开始行号且不大于所述结束行号的各条记录,包括:
利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
5.根据权利要求1所述的方法,其特征在于,所述响应信息还包括总记录数、总页数、当前页所包含的记录数、当前页数。
6.一种分页查询系统,其特征在于,应用于服务层,所述服务层处于应用层与数据库之间,且服务层作为数据库方的服务接口,用于为应用层的多个应用服务提供通用的分页查询服务,所述系统包括:
接收模块,用于接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
第一获取模块,用于获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
计算模块,用于基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;其中,所述开始行号计算公式为所述结束行号计算公式为e=min(s+n,N);所述s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号;
第二获取模块,用于获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
发送模块,用于向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
7.根据权利要求6所述的系统,其特征在于,所述第一获取模块,包括:
过滤单元,用于从所述查询请求中过滤出所述查询条件;
第一创建单元,用于依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
统计单元,用于利用所创建的查询总记录数SQL语句从数据库中统计出符合所述查询条件的记录的总数。
8.根据权利要求6所述的系统,其特征在于,所述第二获取模块,包括:
第二创建单元,用于利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
修改单元,用于基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
查询单元,用于利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640446.0A CN104298788B (zh) | 2014-11-13 | 2014-11-13 | 一种分页查询方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640446.0A CN104298788B (zh) | 2014-11-13 | 2014-11-13 | 一种分页查询方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298788A CN104298788A (zh) | 2015-01-21 |
CN104298788B true CN104298788B (zh) | 2017-12-12 |
Family
ID=52318513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410640446.0A Active CN104298788B (zh) | 2014-11-13 | 2014-11-13 | 一种分页查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298788B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528573B (zh) * | 2015-09-14 | 2019-08-20 | 北京国双科技有限公司 | HBase数据库的数据查询方法和装置 |
CN106940675B (zh) * | 2016-01-05 | 2020-05-19 | 佛山市顺德区顺达电脑厂有限公司 | 系统日志查询方法 |
CN107193822A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 用于分页查询的方法、装置及设备 |
CN107315753B (zh) * | 2016-04-27 | 2020-11-03 | 北京京东尚科信息技术有限公司 | 跨多数据库的分页方法和装置 |
CN106874326A (zh) * | 2016-07-05 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 一种条目列表获取请求处理方法及装置 |
CN106446080B (zh) * | 2016-09-09 | 2021-08-13 | 华为技术有限公司 | 数据查询的方法、查询服务设备、客户端设备和数据系统 |
CN108090086B (zh) * | 2016-11-21 | 2022-02-22 | 迈普通信技术股份有限公司 | 分页查询方法及装置 |
CN109325049A (zh) * | 2018-07-27 | 2019-02-12 | 平安科技(深圳)有限公司 | 分程异步加载方法、装置、终端设备及存储介质 |
CN109543027B (zh) * | 2018-11-23 | 2020-02-07 | 苏州好玩友网络科技有限公司 | 分页数据的获取方法及装置、设备及存储介质 |
CN110928901B (zh) * | 2019-10-28 | 2022-05-31 | 武大吉奥信息技术有限公司 | 基于MapServer服务协议的图层联合查询方法、设备及存储设备 |
CN114491253B (zh) * | 2022-01-21 | 2023-09-26 | 北京百度网讯科技有限公司 | 观测信息处理方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390007A (zh) * | 2012-05-11 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 数据获取方法和装置 |
CN104123340A (zh) * | 2014-06-25 | 2014-10-29 | 世纪禾光科技发展(北京)有限公司 | 一种数据库分表分页查询方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162506A1 (en) * | 2007-01-03 | 2008-07-03 | Stephenson Janette W | Device and method for world wide web organization |
-
2014
- 2014-11-13 CN CN201410640446.0A patent/CN104298788B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390007A (zh) * | 2012-05-11 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 数据获取方法和装置 |
CN104123340A (zh) * | 2014-06-25 | 2014-10-29 | 世纪禾光科技发展(北京)有限公司 | 一种数据库分表分页查询方法及系统 |
Non-Patent Citations (1)
Title |
---|
Oracle 10g数据库海量数据分页查询优化;孙风栋等;《计算机应用与软件》;20110930;第28卷(第9期);第137-139页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104298788A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298788B (zh) | 一种分页查询方法和系统 | |
CN104994122B (zh) | 一种基于json数据协议的业务通讯方法 | |
CN103473234B (zh) | 一种从web查询系统导出报表的方法、装置及系统 | |
CN106295382B (zh) | 一种信息风险防控方法及装置 | |
CN101408877B (zh) | 树节点加载系统及其方法 | |
CN104283975B (zh) | 文件分发方法和装置 | |
CN102737065B (zh) | 数据的获取方法和装置 | |
CN107229619A (zh) | 互联网业务链路调用情况的统计、展示方法及装置 | |
CN106775486A (zh) | 数据访问系统、方法及路由服务器、配置中心服务器 | |
CN101562664A (zh) | 一种话单处理方法和系统 | |
CN103020093A (zh) | Xbrl信息披露报告的录制和展示方法及其系统 | |
CN107070782A (zh) | 一种基于消息队列可扩展的接口集成方法、服务器及系统 | |
CN106878397A (zh) | 一种web用户行为反馈方法及系统 | |
CN107147527A (zh) | 一种Linux集群告警的系统及方法 | |
CN106599015A (zh) | 一种数据服务管理系统及其方法 | |
CN109344180A (zh) | 展示数据获取的方法、装置、计算机设备和存储介质 | |
CN107370628A (zh) | 基于埋点的日志处理方法及系统 | |
CN102984272B (zh) | 一种远程控制移动终端通信能力的系统及其方法 | |
CN103581119B (zh) | 一种生产过程数据高速显示系统及方法 | |
CN104156372B (zh) | 一种开启网页的方法、装置和系统 | |
CN106445968A (zh) | 一种数据合并方法及装置 | |
CN108845996A (zh) | 一种聚合安卓应用程序内部搜索功能的元搜索引擎实现方法和总控系统 | |
CN107203637A (zh) | 一种数据分析方法及系统 | |
CN106980697A (zh) | 一种目录分布查询方法及装置 | |
CN107341249A (zh) | 服务器信息的存储和提取方法及系统、提取装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |