一种跨平台数据库查询方法

文档序号:6446544阅读:275来源:国知局
专利名称:一种跨平台数据库查询方法
技术领域
本发明涉及一种对数据库的操作方法,具体而言涉及一种数据库的查询方法。
背景技术
对于任何一种跨平台操作的系统来讲,屏蔽各操作平台之间的差异性都是其中的一个关键组成部分。而对于任何一个需要利用数据库存储和访问的系统来讲,对数据库访问的方便快捷要求也是必不可少的,尤其涉及到大数据量或者查询条件异常复杂的数据库访问,则更是如此。一个好的数据库查询,应当做到无需用户关心数据库的实际位置,同时在用户的查询地点发生变化时,也无需修改任何访问接口,仍然能正确方便快速地访问数据库中的数据。
目前的跨平台的数据库查询大多采用数据库提供的网络配置方法和工具,或者以ODBC或JDBC连接数据库,输入查询要求和查询请求进行查询。比如ORACLE数据库提供的NET8配置以及WORKSHEET等工具就是如此。采用这几种方式,存在以下几点不足1、每次查询都需要重复输入查询条件;2、大数据量查询请求时,会发生网络传输瓶颈的问题;3、不同用户或者用户在不同平台移动时需要对数据库的连接进行重新配置;4、查询结果返回方式千差万别,用户无法统一处理,加大了用户的复杂度。

发明内容
本发明的目的就是克服目前对于跨平台的数据库查询需要利用网络配置和工具进行的缺点,提出一种可以屏蔽平台之间的差异性,减少用户查询处理复杂程度,并可以解决大数据量查询请求时网络传输瓶颈问题的跨平台数据库查询方法。
本发明的核心思想是定义一种统一的文件结构,用于存储用户的查询条件和查询结果,服务器端数据库处理单元根据文件结构中定义的查询条件在数据库中进行查询,并将查询结果存储在统一的文件结构中。
本发明的技术方案如下一种跨平台数据库查询方法,包括下列步骤
(1)构造统一格式的查询文件,所述查询文件包括信息控制区和信息数据区,信息控制区用于存储用户的查询条件及用户自身信息,信息数据区用于存储查询的返回结果;(2)用户在查询文件中输入查询信息;(3)用户将查询请求以文件的方式发送到数据库处理单元;(4)数据库处理单元为每个查询请求分配数据库子处理单元,所述数据库子处理单元为可供调用的数据库连接;(5)数据库子处理单元根据分配的查询文件构造数据库SQL查询语句;(6)进行数据库查询;(7)数据库字处理单元处理查询结果并向用户返回查询结果文件。
所述信息控制区的内容包括是否为联合查询,查询表名,查询字段列表,查询条件,生成的文件名,用户标识信息。所述信息数据区的内容包括数据头,用以记录查询的字段数目及记录数;数据类型描述,用以记录字段类型及字段长度;数据记录,用以记录查询得到的具体内容。
上述步骤(5)具体包括下列步骤(1)数据库子处理单元根据查询请求中的用户标识信息调用文件结构,获取文件结构和信息控制区用户给定的文件名,并在给定目录下以读写方式打开这个文件,如果该文件已存在,则覆盖,如果不存在,则生成一个新文件;(2)数据库子处理单元判断查询请求中用户输入查询信息的正确性,如果用户填写信息不完全,则向用户返回失败信息,否则执行下一步;(3)数据库子处理单元根据用户填写的查询信息构造出数据库SQL查询语句;(4)数据库子处理单元验证查询语句是否正确,如果不正确,则向用户返回失败信息,否则执行下一步查询。
数据库查询是指将查询语句一次传入数据库,逐条获取查询结果。处理查询结果是指数据库子处理单元将查询结果以网络字节序的方式写入查询结果文件的信息数据区,查询完成后,数据库子处理单元关闭查询结果文件。
所述方法还包括提供一系列文件存取接口,所述存取接口是在文件系统本身的存取接口上封装一层,使得用户在对文件进行存取时无需关心文件的结构和来源。所述存取接口包括文件创建、文件打开、文件写入、文件读取、文件关闭、文件定位、文件移动、文件指针当前位置和文件删除。
本发明与现有的跨平台数据库查询方法相比,特别考虑了用户相对于数据库平台的移动对查询带来的影响,以及大数据量的查询在网络传输上的瓶颈,原有方法在这种情况下,一般都需要重新配置与数据库的连接,或者调整用户对查询条件以减少查询结果的数据量。本发明利用文件的传输屏蔽不同平台之间的差异和大数据量查询的网络传输瓶颈,并利用统一的文件结构减少了用户的复杂度。采用此方法1、有效提高了用户的迁移性;2、可以解决大数据量查询的网络传输速度问题;3、降低了用户的处理复杂度;4、用户无需关心对数据库的配置情况,提高了平台之间操作的兼容性;5、减少用户对数据库查询条件的频繁输入,提高了对数据库查询的访问速度。


图1是本发明所述查询方法的主流程图。
图2是查询文件的结构示意图。
图3是图1中“子处理单元构造查询SQL语句”步骤的详细流程图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的详细说明。
图1是本发明所述查询方法的主流程图。如图1所示,本发明提出的查询方法包括下列步骤1、构造统一格式的查询文件。所述查询文件包括信息控制区和信息数据区,信息控制区用于存储用户的查询条件及用户自身信息,信息数据区用于存储查询的返回结果。查询文件的结构将在图2的说明中作进一步描述。2、用户在查询文件中输入查询信息。文件结构以初始模板呈现给用户,用户根据自己的查询需求填写初始模板,用户填写的信息被记录在文件结构的信息控制区。3、用户将查询请求以文件的方式发送到数据库处理单元。当用户确认自己的填写时,填写好的文件结构就被传送到数据库处理单元保留,在系统运行过程中,用户可以随时修改查询信息,修改的查询信息会立刻被记录,并保留在以后的使用中。4、数据库处理单元为每个查询请求分配数据库子处理单元,所述数据库子处理单元为可供调用的数据库连接。用户可以将查询请求发送到服务器数据库处理单元进行查询,数据库处理单元对查询请求进行调度,为每个请求分配可供调用的数据库连接,这个单独的数据库连接可以称为数据库子处理单元。数据库处理单元对查询请求进行调度,根据各子处理单元的空闲程度进行分配,找到无负载的数据库处理子单元,并将该请求分配给此数据库处理子单元。5、数据库子处理单元根据分配的查询文件构造数据库SQL查询语句。对于数据库的查询主要通过一定的SQL查询语句完成,这一步的详细描述将在图3中进行。6、进行数据库查询,将查询语句一次传入数据库,逐条获取查询结果。7、数据库字处理单元处理查询结果并向用户返回查询结果文件。数据库子处理单元将查询结果以网络字节序的方式写入查询结果文件的信息数据区,查询完成后,数据库子处理单元关闭查询结果文件。用户对数据库查询的请求,可以是同步的,也可以是异步的,这取决于用户对返回结果是否立刻关心。
图2是查询文件的结构示意图。如图2所示,本发明定义了一种统一的文件结构,该文件结构可以适应各种用户的查询需求。用户可以根据自己的需求对查询信息进行定义,用于后面的SQL语句获取依据和查询结果的写文件依据。统一结构的查询文件包括信息控制区和信息数据区,信息控制区用于存储用户的查询条件及用户自身信息,信息数据区用于存储查询的返回结果。信息控制区的定义不同系统可以有不同的定义,但基本信息是相同的信息控制区的查询信息定义部分可以定义查询对象,查询条件等;信息控制区的用户信息定义部分可以定义用户的标识信息,如是否为联合查询查询表名查询字段列表(缺省为表中全部字段)查询条件(缺省为全部记录)生成的文件名用户标识信息文件结构的信息数据区一般可以由以下几部分组成信息数据区的数据头部分用以记录查询的字段数目及记录数等;信息数据区的数据类型描述部分用以记录字段类型及字段长度等;信息数据区的数据记录部分用以记录查询得到的具体结果;当然,不同的系统可以对信息控制区和信息数据区的内容有不同的定义。
图3是图1中“子处理单元构造查询SQL语句”步骤的详细流程图。如图3所示,具体包括下列步骤1、数据库子处理单元根据查询请求中的用户标识信息调用文件结构,获取文件结构和信息控制区用户给定的文件名,并在给定目录下以读写方式打开这个文件,如果该文件已存在,则覆盖,如果不存在,则生成一个新文件;2、数据库子处理单元判断查询请求中用户输入查询信息的正确性,如果用户填写信息不完全,则向用户返回失败信息,否则执行下一步;3、数据库子处理单元根据用户填写的查询信息构造出数据库SQL查询语句;4、数据库子处理单元验证查询语句是否正确,如果不正确,则向用户返回失败信息,否则执行下一步查询。用户发送查询请求到数据库处理单元,数据库子处理单元分析该项请求,并判断用户填入信息的正确性(比如验证表名是否填入等),如果填写信息不完全,则向用户返回失败,否则数据库子处理单元在接到数据库处理单元分配的查询请求后,首先在信息控制区进行查找,获取相关的查询信息,并根据得到的查询信息构成用以查询的SQL语句,并简单检查语句的正确性(比如验证语句中是否有表名等)如果验证正确,则进行下一步查询,否则,向用户返回错误号。数据库子处理单元一旦验证了查询语句的正确性,就将查询语句传入数据库,在数据库中执行相应的查询操作。查询语句一次传入数据库,查询结果逐条获取,为了屏蔽不同平台之间的差异,子处理单元对查询结果进行初步的分析,将查询结果以网络字节序的方式写入文件的信息数据区,当查询完成后,数据库子处理单元关闭文件,并准备向用户返回。
为了方便用户对查询结果文件的存取,该方法提供了一系列的文件存取接口,这些存取接口利用了文件系统本身的存取接口,在原有接口上封装了一层,封装层提供了对查询信息的分析以及对网络中不同平台的判断处理,使得用户在对文件进行存取时无需关心文件的来源和结构。这些存取接口包括文件创建、文件打开、文件写入、文件读取、文件关闭、文件定位、文件移动、文件指针当前位置和文件删除。对这些存取接口的简单说明如下·文件创建判断文件是否存在,如果存在,则判断是否需要覆盖,如果是,则覆盖原有文件;如果文件不存在,直接创建;·文件打开判断文件以何种方式打开,根据要求打开文件;·文件写入判断是对查询信息的写入还是对查询结果的写入,根据不同的写入请求写文件;·文件读取判断是对查询信息的读取还是对查询结果的读取,数据库处理子单元调用对查询信息的读取,用户调用对查询结果的读取;·文件关闭将打开的文件关闭;·文件定位将文件的指针定位到某个位置;·文件移动将文件从一个地方移动到另一个地方,可以是同一平台之间的移动,也可以是不同平台之间的移动;·文件指针当前位置返回文件指针当前的位置;·文件删除将文件从某个地方删除,如果没有权限,则返回失败并告诉无权限删除,如果有权限,则直接删除。
在本发明的一个优选实施例——电信网管系统(客户端/服务器模式)中,采用本发明所述的方法实现对数据库查询,主要实施步骤如下1.查询条件定义根据上述方法中提供的统一文件结构,对信息控制区和信息数据区分别进行了定义,信息控制区部分模板结构定义如下信息控制区头是否为联合查询(可以缺省,缺省为单表查询)生成的文件名用户标识信息信息控制区内容查询表名查询字段列表(可以缺省,缺省为全部字段)查询条件(可以缺省,缺省为全部记录)信息数据区部分模板结构定义如下数据头记录查询的字段数目及记录数等数据类型描述记录字段类型及字段长度,整个结构长度为字段数目数据记录记录查询得到的具体内容客户端根据自己的查询需求填写初始摸板,当客户端确认自己的填写时,填写好的文件结构就被传送到数据库处理单元保留。在系统运行过程中,客户端可以通过接口随时修改查询信息,修改的查询信息会立刻被记录,并保留在以后的使用中。
2.查询请求处理客户端将查询请求发送到服务器数据库处理单元进行查询,数据库处理单元对查询请求进行调度,找到无负载的数据库处理子单元,并将该请求分配给此数据库处理子单元,当数据库子处理单元收到查询请求时,根据用户标识信息调用文件结构,获取文件结构信息控制区用户给定的文件名,并在服务器给定目录下以读写方式打开这个文件,如果该文件已存在,则覆盖,如果不存在,则生成一个新文件。
已分配的子处理单元实施具体的查询请求,并将查询的的结果存储在文件的信息数据区,当一次查询完全结束后,子处理单元将文件返回给客户端。客户端对数据库查询的请求,可以是同步的,也可以是异步的,这取决于它对返回结果是否立刻关心。
我们提供一系列API函数来进行数据库的操作。为了在数据库连接数目有限的情况下可以使尽可能多的数据库操作能够并发操作,对于简单查询的操作首先将查询结果放入结果缓存,取数据时再逐条取出各个结果。
3.查询语句获取数据库子处理单元在接到数据库处理单元分配的查询请求后,则首先在信息控制区进行查找,获取相关的查询信息,并根据得到的查询信息构成用以查询的SQL语句,并简单检查语句的正确性(比如验证语句中是否有表名等)如果验证正确,则进行下一步查询,否则,向客户端返回错误号。
4.进行查询数据库子处理单元一旦验证了查询语句的正确性,就将查询语句传入数据库,在数据库中执行相应的查询操作。
查询语句一次传入数据库,查询结果逐条获取,为了屏蔽不同平台之间的差异,子处理单元对查询结果进行初步的分析,将查询结果以网络字节序的方式写入文件的信息数据区,当查询完成后,数据库子处理单元关闭文件,并准备向客户端返回。
本发明所提出的查询方法适用于任何客户端/服务器模式。采用本发明提出的方法,使得在有限的数据库连接数目下,能够完成各个模块对于数据库的访问,屏蔽了各个用户模块对数据库的访问;同时它也提供了对数据库的监测功能,解决了移动对查询带来的影响,以及大数据量的查询在网络传输上的瓶颈问题,并减少了用户进行查询处理的复杂度。
权利要求
1.一种跨平台数据库查询方法,其特征在于包括下列步骤(1)构造统一格式的查询文件,所述查询文件包括信息控制区和信息数据区,信息控制区用于存储用户的查询条件及用户自身信息,信息数据区用于存储查询的返回结果;(2)用户在查询文件中输入查询信息;(3)用户将查询请求以文件的方式发送到数据库处理单元;(4)数据库处理单元为每个查询请求分配数据库子处理单元,所述数据库子处理单元为可供调用的数据库连接;(5)数据库子处理单元根据分配的查询文件构造数据库SQL查询语句;(6)进行数据库查询;(7)数据库字处理单元处理查询结果并向用户返回查询结果文件。
2.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述信息控制区的内容包括是否为联合查询,查询表名,查询字段列表,查询条件,生成的文件名,用户标识信息。
3.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述信息数据区的内容包括数据头,用以记录查询的字段数目及记录数;数据类型描述,用以记录字段类型及字段长度;数据记录,用以记录查询得到的具体内容。
4.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述步骤(5)具体包括下列步骤(1)数据库子处理单元根据查询请求中的用户标识信息调用文件结构,获取文件结构和信息控制区用户给定的文件名,并在给定目录下以读写方式打开这个文件,如果该文件已存在,则覆盖,如果不存在,则生成一个新文件;(2)数据库子处理单元判断查询请求中用户输入查询信息的正确性,如果用户填写信息不完全,则向用户返回失败信息,否则执行下一步;(3)数据库子处理单元根据用户填写的查询信息构造出数据库SQL查询语句;(4)数据库子处理单元验证查询语句是否正确,如果不正确,则向用户返回失败信息,否则执行下一步查询。
5.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述步骤(6)进行数据库查询是指将查询语句一次传入数据库,逐条获取查询结果。
6.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述步骤(7)中处理查询结果是指数据库子处理单元将查询结果以网络字节序的方式写入查询结果文件的信息数据区,查询完成后,数据库子处理单元关闭查询结果文件。
7.根据权利要求1所述的跨平台数据库查询方法,其特征在于用户对数据库查询的请求,可以是同步的,也可以是异步的。
8.根据权利要求1所述的跨平台数据库查询方法,其特征在于所述方法还包括提供一系列文件存取接口,所述存取接口是在文件系统本身的存取接口上封装一层,使得用户在对文件进行存取时无需关心文件的结构和来源。
9.根据权利要求8所述的跨平台数据库查询方法,其特征在于所述存取接口包括文件创建、文件打开、文件写入、文件读取、文件关闭、文件定位、文件移动、文件指针当前位置和文件删除。
全文摘要
本发明公开了一种跨平台数据库查询方法,包括下列步骤1.构造统一格式的查询文件;2.用户在查询文件中输入查询信息;3.用户将查询请求以文件的方式发送到数据库处理单元;4.数据库处理单元为每个查询请求分配数据库子处理单元;5.数据库子处理单元根据分配的查询文件构造数据库SQL查询语句;6.进行数据库查询;7.数据库字处理单元处理查询结果并向用户返回查询结果文件。本发明利用文件的传输屏蔽不同平台之间的差异和大数据量查询的网络传输瓶颈,并利用统一的文件结构减少了用户的复杂度。有效提高了用户的迁移性和降低了用户的处理复杂度,提高了平台之间操作的兼容性,提高了对数据库查询的访问速度。
文档编号G06F17/30GK1549163SQ0311349
公开日2004年11月24日 申请日期2003年5月15日 优先权日2003年5月15日
发明者郜艳琴, 李征鹤, 李晓鹏 申请人:深圳市中兴通讯股份有限公司南京分公司, 深圳市中兴通讯股份有限公司南京分公
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1