[发明专利]一种分页查询方法和系统有效
申请号: | 201410640446.0 | 申请日: | 2014-11-13 |
公开(公告)号: | CN104298788B | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 陈炙;聂砂;李拓;贾国琛;白彧斐 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分页 查询 方法 系统 | ||
技术领域
本发明属于数据库的分页查询技术领域,尤其涉及一种分页查询方法和系统。
背景技术
分页浏览功能是一种常见的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语句;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410640446.0/2.html,转载请声明来源钻瓜专利网。