一种数据查询方法和一种数据查询系统的制作方法

文档序号:6457861阅读:220来源:国知局
专利名称:一种数据查询方法和一种数据查询系统的制作方法
技术领域
本发明涉及数据库应用领域,特别是涉及一种数据查询方法和一种数 据查询系统。
背景技术
在目前的很多软件应用系统中,经常面临访问数据库的问题,而数 据查询则是最常用的一个操作。现有的数据查询技术中, 一般依据用户的查询条件生成SQL语句,把 满足条件的数据从数据库中提取出来,在客户端进行显示。然而, 一旦 并发查询过多,则可能导致数据库端的内存资源不足,从而严重影响查 询效率。由于传输的数据量较大,并在一定时间内需要大量占用客户端 的内存,这种方式还不适用于小带宽的web应用。对此,现有技术使用分 页查询技术来解决上述问题。分页查询的技术原理是,在数据库端实现分页技术,通过数据库的 游标取出某个范围的数据,例如,在JAVA中通过游标查询,直接使用 ResultSet来处理。其中,ResultSet是直接在数据库上建立游标,然后通过 ResultSet的行位置定位接口来获得指定行位置的记录。当用户第 一请求数 据查询时,就执行SQL语句查询,获得的ResultSet对象及其要使用的连接 对象都保存到其对应的会话对象中。以后的分页查询都通过第 一次执行 SQL获得的ResultSet对象定位取得指定行位置的记录。然而,这种处理方 式在每次分页查询时,数据库仍需要预先从数据集合中过滤出符合条件 的数据,再进一步釆用游标取出某个范围的数据,因而查询的反应速度 较慢,对数据库的访问资源占用较大,特别在并发查询较多时,由于上 述影响数据库端性能的因素,必将导致系统的反应变慢。总之,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够创新的提出一种数据查询机制,可以在节省资源占用的前提下, 简单、有效地提高数据查询效率。发明内容本发明所要解决的技术问题是提供一种数据查询方法,用以在节省资 源占用的前提下,简卑、有效地提高数据查询效率。本发明还提供了 一种数据查询装置,用以保证上述方法在实际中的 实现及应用。为解决上述技术问题,本发明实施例公开了一种数据查询方法,包括在数据源中定义查询主键;从所述查询主键中提取满足查询条件的查询主键,以创建查询主键列表;生成所述查询主键列表的分页规则,所述分页规则包括页面标识及对 应的查询主4建范围;依据用户指定的页面标识提取相应范围的查询主键,以生成查询语句;执行所述查询语句,完成数据查询,返回数据结果集。优选的,所述的方法,还包括在当前页面展示所述数据结果集。优选的,所述的方法,还包括保存所述查询主键列表至客户端緩存中。优选的,所述数据源为位于服务器端或客户端的数据库。优选的,所述查询语句为SQL查询语句。本发明实施例还公开了一种数据查询系统,包括主键定义模块,用于在数据源中定义查询主键;主键提取模块,用于从所述查询主键中提取满足查询条件的查询主 键,以创建查询主键列表;分页模块,用于生成所述查询主键列表的分页规则,所述分页规则包 括页面标识及对应的查询主4建范围;语句生成模块,用于依据用户指定的页面标识提取相应范围的查询主 4定,以生成查询i吾句;执行模块,用于执行所述查询语句,完成数据查询,返回数据结果集。优选的,所述的系统,还包括展示模块,用于在当前页面展示所述数据结果集。优选的,所述的系统,还包括緩存模块,用于保存所述查询主键列表至客户端緩存中。 优选的,所述数据源为位于服务器端或客户端的数据库。 优选的,所述查询语句为SQL查询语句。 与现有技术相比,本发明具有以下优点为了解决大数据量数据查询的问题,本发明提供了 一种解决途径, 通过定义数据源的查询主键作为查询的基础,并建立分页规则,用户查 询时,通过指定的页面标识和相应的查询主4建生成查询语句,以进4亍分 页展示,从而大大减少了数据处理量和传输量,有效节省了系统资源占 用,提高了查询效率,进而提高了系统的反应速度,特别在数据并发查 询较多时,这种查询性能的提高尤为明显。


图1是本发明一种数据查询的方法实施例1的步骤流程图;图2是本发明一种数据查询的方法实施例2的步骤流程图;图3是一种订单数据表的示意图;图4是返回数据结果集的界面示意图;图5是本发明 一种数据查询的系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合 附图和具体实施方式
对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如个 人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处 理器系统、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的 一般上下文中描 述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽 象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络 而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块本发明实施例的核心构思之一在于,通过定义数据源的查询主键作 为查询的基础,并建立分页规则,用户查询时,通过指定的页面标识和 相应的查询主键生成查询语句,以进行分页展示,从而减少数据处理量 和传输量,有效节省系统资源的占用,提高查询的效率,进而提高系统 的反应速度。参考图1,示出了本发明一种数据查询方法实施例1的流程图,可以包括以下步骤步骤IOI、在数据源中定义查询主键;步骤102、从所述查询主键中提取满足查询条件的查询主键,以创建 查询主4建列表;步骤103、生成所述查询主键列表的分页规则,所述分页规则包括页 面标识及对应的查询主4建范围;步骤104、依据用户指定的页面标识提取相应范围的查询主键,以生 成查询语句;步骤105、执行所述查询语句,完成数据查询,返回数据结果集。 通常,在建立数据库的时候,会为每张表指定一个主键(PrimaryKey), 所谓主键就是能够唯一标识表中某一行的属性或属性组, 一个表通常只 能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行 记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错 误。当然,还以增加其它字段在执行操作时消除共享冲突。主键除了上 述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。现有技术提供了诸多数据库主键选取的方案,例如,自动增长字段、 手动增长字段、使用Uniqueldentifier类型、使用"COMB (Combine)" 类型等。当然,本领域技术人员采用任一种方法在数据源中定义查找主 键都是可行的,本发明对此并不需要作出限制。参考图2,示出了本发明一种数据查询方法实施例2的流程图,可以 包括以下步骤步骤201、在位于服务器端或客户端的数据库中定义查询主键;步骤202、从所述查询主4定中提取满足查询条件的查询主鍵,以创建 查询主键列表,并保存所述查询主键列表至客户端緩存中;步骤203、生成所述查询主键列表的分页规则,所述分页规则包括页 面标识及对应的查询主^l建范围;步骤204、依据用户指定的页面标识提取相应范围的查询主键,以生 成查询i吾句;步骤205、执行所述查询语句,完成数据查询,返回数据结果集; 步骤206、在当前页面展示所述数据结果集。优选的是,所述查询语句可以为SQL查询语句。SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操 作命令集,是高级的非过程化编程语言,允许用户在高层数据结构上工 作。其不要求用户指定对数据的存放方法,也不需要用户了解具体的数 据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相 同的SQL语言作为数据输入与管理的接口。由于SQL语言属于本领域的 7>知4支术,在此不再详述。对于生成SQL语句的过程,也属于本领域的常用才支术。例如,本领 域技术人员经常会通过O-RMapping框架技术生成SQL语句。ORM,即 Object-Relation Mapping,它的作用是在关系型数据库和对象之间作一个 映射,这样,技术人员在具体的操作数据库的时候,就不需要再去和复 杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。例如, 利用O/R Mapping保存、删除或者读取对象,而由O/R Mapping负责生 成SQL语句即可。下面以 一 个具体例子对本发明进行更进 一 步的描述。 假设用户需要查询"金额">100的订单信息,应用本发明优选实施例 的步骤包括Sl、在图3所示的数据库表中确定订单信息的查询主键,即表中的FID;52、 根据用户设置的查询条件"金额">100提取满足条件的查询主 键,用查询语句可以表示为 'select FID From order Where amount>10053、 将通过上述主键查询获得的主键形成查询主键列表,保存至緩存中;54、 根据查询主键的数量生成分页规则,即建立某个页面标识与相 应的主键范围的对应关系,例如,根据页面展示记录的数量计算出总页 数,假设一页可以展示100条记录,则形成页面1对应第1—100条主键 记录,页面2对应第101—200条主4建记录等等,还可以设置在当前记录 少于预设展示记录时,即假设在分到页面3时,只剩201—288条主键记 录,直接取所有剩余的主键记录。55、 依据用户指定的页面标识提取相应范围的查询主4建,以生成查 询语句;例如,用户指定提取页面1的数据,则从查询主键列表中取出1到 100的主键,构造出实际需要的字段的查询,即可以通过订单中所有字段 的信息得到本次查询的查询语句为select * from order Where id IN(l, 2, ...., 100);56、 执行所述查询语句,完成数据查询,返回数据结果集,并在当 前页面展示。本例的展示结果可以参考图4所示的界面示意图。针对用户进一步地页面选取操作,从主键列表中取得相应页面对应 的主键范围,再构建出查询语句,例如,用户选择查询第3页的数据, 从主键列表中取得主键为(500, 511.....),则相应的查询语句可以为select * from order Where id In(500, 511….)再根据这个查询语句得到的查询结果进行显示。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动 作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。参考图5,示出了本发明的一种数据查询系统实施例的结构框图,可 以包括以下模块主键定义模块501,用于在数据源中定义查询主键;主键提取模块502,用于从所述查询主键中提取满足查询条件的查询 主键,以创建查询主键列表;分页模块503,用于生成所述查询主键列表的分页规则,所述分页规 则包括页面标识及对应的查询主^t建范围;语句生成模块504 ,用于依据用户指定的页面标识提取相应范围的查 询主4定,以生成查询i吾句;执行模块505,用于执行所述查询语句,完成数据查询,返回数据结 果集。优选的是,本实施例还可以包括展示模块,用于在当前页面展示所 述数据结果集。优选的是,本实施例还可以包括緩存模块,用于保存所述查询主键 列表至客户端緩存中。在实际中,所述数据源可以为位于服务器端或客户端的数据库;所 述查询语句为SQL查询语句。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中 没有详述的部分,可以参见其他实施例的相关描述。对于系统类实施例 而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处 参见方法实施例的部分说明即可。以上对本发明所提供的 一 种数据查询的方法和系统进行了详细介上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时, 对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应 用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发 明的限制。
权利要求
1、一种数据查询方法,其特征在于,包括在数据源中定义查询主键;从所述查询主键中提取满足查询条件的查询主键,以创建查询主键列表;生成所述查询主键列表的分页规则,所述分页规则包括页面标识及对应的查询主键范围;依据用户指定的页面标识提取相应范围的查询主键,以生成查询语句;执行所述查询语句,完成数据查询,返回数据结果集。
2、 如权利要求l所述的方法,其特征在于,还包括 在当前页面展示所述数据结果集。
3、 如权利要求1或2所述的方法,其特征在于,还包括 保存所述查询主键列表至客户端緩存中。
4、 如权利要求3所述的方法,其特征在于,所述数据源为位于服务 器端或客户端的数据库。
5、 如权利要求4所述的方法,其特征在于,所述查询语句为SQL查 询语句。
6、 一种数据查询系统,其特征在于,包括 主键定义模块,用于在数据源中定义查询主键; 主键提取模块,用于从所述查询主键中提取满足查询条件的查询主4建,以创建查询主4建列表;分页模块,用于生成所述查询主键列表的分页规则,所述分页规则包 括页面标识及对应的查询主^t范围;语句生成模块,用于依据用户指定的页面标识提取相应范围的查询主 4建,以生成查询i吾句;执行模块,用于执行所述查询语句,完成数据查询,返回数据结果集。
7、 如权利要求6所述的系统,其特征在于,还包括 展示模块,用于在当前页面展示所述数据结果集。
8、 如权利要求6或7所述的系统,其特征在于,还包括 緩存模块,用于保存所述查询主键列表至客户端緩存中。
9、 如权利要求8所述的系统,其特征在于,所述数据源为位于服务 器端或客户端的数据库。
10、 如权利要求9所述的系统,其特征在于,所述查询语句为SQL 查询语句。
全文摘要
本发明提供了一种数据查询的方法,包括在数据源中定义查询主键;从所述查询主键中提取满足查询条件的查询主键,以创建查询主键列表;生成所述查询主键列表的分页规则,所述分页规则包括页面标识及对应的查询主键范围;依据用户指定的页面标识提取相应范围的查询主键,以生成查询语句;执行所述查询语句,完成数据查询,返回数据结果集。本发明可以在节省资源占用的前提下,简单、有效地提高数据查询效率。
文档编号G06F17/30GK101216840SQ20081000432
公开日2008年7月9日 申请日期2008年1月21日 优先权日2008年1月21日
发明者李家才 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1