本发明涉及一种数据查询方法及系统。
背景技术:
随着电子商务的兴起和手机客户端的普及,统一的数据接口很难满足不同代理方和多样的客户端展现平台的需求。往往在客户端通过目标源服务器进行接口对接的时候,不得不拉取目标源服务器的全量数据,导致大量的无用数据也被放出,造成数据冗余和传输通道堵塞。
技术实现要素:
本发明要解决的技术问题是为了克服现有技术中客户端(客户端服务器)与目标源服务器(即数据库服务器)进行接口对接时存在的数据冗余和传输通道堵塞的缺陷,提供一种数据查询方法及系统。
本发明是通过以下技术方案解决上述技术问题的:
本发明提供一种数据查询方法,其特点是,所述数据查询方法包括:
在数据库服务器添加接口模块,所述接口模块设置有用于存储至少一静态查询协议的静态协议库,每一静态查询协议分别与所述数据库服务器中的数据相对应;
所述数据查询方法还包括:
S1、客户服务器向所述数据库服务器发起第一查询请求,所述第一查询请求带有第一查询协议;
S2、所述接口模块查询所述静态协议库中是否存储有与所述第一查询协议匹配的静态查询协议,若是,则执行S3,若否,则执行S5;
S3、所述接口模块从所述数据库服务器获取与所述第一查询协议匹配的静态查询协议所对应的数据;
S4、所述接口模块将获取到的数据传输至所述客户服务器,然后结束流程;
S5、所述接口模块拒绝所述第一查询请求。
本技术方案通过接口模型与客户服务端的配合,获取需要查询的数据,利用静态查询协议达到数据瘦身的目的,提高了数据传输效率,避免数据冗余和传输通道堵塞,同时增加了客户服务器的数据利用率。
较佳地,所述静态查询协议包括协议名,所述第一查询协议包括第一协议名;
S2包括:所述接口模块查询所述静态协议库存储的协议名中是否包括所述第一协议名,若是,则从所述数据库服务器获取所述第一协议名所属的静态查询协议对应的数据,若否,则执行S5。
较佳地,所述接口模块还设置有用户配置文件库,所述用户配置文件库存储有文件标识符和与文件标识符对应的配置信息;
所述数据查询方法还包括:
S1’、客户服务器向数据库服务器发起第二查询请求,所述第二查询请求带有动态查询协议,所述动态查询协议包括第一文件标识符;
S2’、所述接口模块查询所述用户配置文件库存储的文件标识符中是否包括所述第一文件标识符,若是,则执行S3’,若否,则执行S6’;
S3’、所述接口模块从所述用户配置文件库中获取与所述第一文件标识符对应的配置信息;
S4’、所述接口模块按照获取到的配置信息向所述数据库服务器发起请求;
S5’、所述数据库服务器响应请求,将请求的数据传输至所述客户服务器,然后结束流程;
S6’、所述接口模块拒绝所述第二查询请求。
本技术方案通过使用动态查询协议来更加灵活的获取数据内容。
较佳地,所述动态查询协议还包括请求查询的字段信息;
S4’替换为:所述接口模块按照获取到的配置信息将所述字段信息补充为完整的查询代码,将所述查询代码传输至所述数据库服务器,然后执行S7’;
S7’、所述数据库服务器按照所述查询代码将数据传输至所述客户服务器,然后结束流程。
较佳地,所述接口模块还设置有动态协议库;
S3’还包括:将所述动态查询协议存入所述动态协议库中。
本技术方案有助于以后的查询使用。具体可以:所述接口模块在接收到所述第二查询请求后,先将所述第二查询请求带有的动态查询协议与所述动态协议库中存入的动态查询协议进行匹配,若匹配到,则将对应的查询代码传输至所述数据库服务器,以使得客户服务器获取相应的数据,若未匹配到,则执行S3’的步骤。这样,可以加快查询速度,避免重复操作。
本发明还提供一种数据查询系统,其特点是,所述数据查询系统包括:存储有数据的数据库服务器、设置于所述数据库服务器中的接口模块和客户服务器;
所述接口模块包括:
存储单元,用于设置用于存储至少一静态查询协议的静态协议库,每一静态查询协议分别与所述数据库服务器中的数据相对应;
所述客户服务器用于向所述数据库服务器发起第一查询请求,所述第一查询请求带有第一查询协议;
所述接口模块还包括:
第一查询单元,用于查询所述静态协议库中是否存储有与所述第一查询协议匹配的静态查询协议,若是,则调用第一获取单元,若否,则调用第一拒绝单元;
所述第一获取单元,用于从所述数据库服务器获取与所述第一查询协议匹配的静态查询协议所对应的数据;
传输单元,用于将获取到的数据传输至所述客户服务器,然后结束调用;
所述第一拒绝单元,用于拒绝所述第一查询请求。
较佳地,所述静态查询协议包括协议名,所述第一查询协议包括第一协议名;
所述第一查询单元,用于查询所述静态协议库存储的协议名中是否包括所述第一协议名,若是,则调用第一获取单元从所述数据库服务器获取所述第一协议名所属的静态查询协议对应的数据,然后调用所述传输单元,若否,则调用所述第一拒绝单元。
较佳地,所述存储单元还用于设置用户配置文件库,所述用户配置文件库存储有文件标识符和与文件标识符对应的配置信息;
所述客户服务器还用于向数据库服务器发起第二查询请求,所述第二查询请求带有动态查询协议,所述动态查询协议包括第一文件标识符;
所述接口模块还包括:
第二查询单元,用于查询所述用户配置文件库存储的文件标识符中是否包括所述第一文件标识符,若是,则调用第二获取单元,若否,则调用第二拒绝单元;
所述第二获取单元,用于从所述用户配置文件库中获取与所述第一文件标识符对应的配置信息;
转发单元,用于按照获取到的配置信息向所述数据库服务器发起请求;
所述数据库服务器,用于响应请求,将请求的数据传输至所述客户服务器,然后结束调用;
所述第二拒绝单元,用于拒绝所述第二查询请求。
较佳地,所述动态查询协议还包括请求查询的字段信息;
所述第二获取单元替换为:用于按照获取到的配置信息将所述字段信息补充为完整的查询代码,将所述查询代码传输至所述数据库服务器;
所述数据库服务器还用于按照所述查询代码将数据传输至所述客户服务器,然后结束调用。
较佳地,所述存储单元还用于设置动态协议库;
所述第二获取单元还用于将所述动态查询协议存入所述动态协议库中。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:本发明通过接口模型与客户服务端的配合,利用静态查询协议和动态查询协议,快速、灵活地获取需要查询的数据,达到数据瘦身的目的,提高了数据传输效率,避免数据冗余和传输通道堵塞,同时增加了客户服务器的数据利用率。
附图说明
图1为本发明较佳实施例1的数据查询系统的框架图。
图2为本发明较佳实施例1的数据查询方法的流程图。
图3为本发明较佳实施例1的数据查询系统的接口模块的示意图。
图4为本发明较佳实施例2的数据查询方法的流程图。
图5为本发明较佳实施例2的数据查询系统的接口模块的示意图。
图6为本发明较佳实施例3的数据查询方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例的数据查询主要涉及三个部分,如图1所示,分别为数据库服务器101、接口模块102和客户服务器103。其中数据库服务器中存储有可供查询的数据;客户服务器通过接口模块获取所述数据库服务器中的数据,所述接口模块可以为API接口模块;客户服务器可以为任意种类,如按照业务层可以分为三类,分别是Web(网页)服务器,移动端服务器和分销服务器,其中Web服务器向目标网站提供数据信息,移动端服务器向iphone客户端,ipad客户端,andrid客户端,Windows phone客户端等手机,平板电脑客户端提供数据信息,分销服务器向qunar,taobao,360等分销平台提供数据信息。
本实施例的数据查询方法包括:
在数据库服务器添加接口模块,所述接口模块设置有用于存储至少一静态查询协议的静态协议库,每一静态查询协议分别与所述数据库服务器中的数据相对应。其中,所述静态查询协议包括协议名。
如图2所示,所述数据查询方法还包括:
步骤201、客户服务器向所述数据库服务器发起第一查询请求,所述第一查询请求带有第一查询协议,所述第一查询协议包括第一协议名。所述第一查询协议还可以包括静态协议标识,所述静态协议标识用于表征第一查询协议的种类是静态查询协议,而不是下文所提的动态查询协议,也就是说,接口模块可以通过协议标识来判定第一查询协议的种类。
步骤202、所述接口模块查询所述静态协议库存储的协议名中是否包括所述第一协议名,若是,则执行步骤203,若否,则执行步骤205。
步骤203、所述接口模块从所述数据库服务器获取所述第一协议名所属的静态查询协议对应的数据。
步骤204、所述接口模块将获取到的数据传输至所述客户服务器,然后结束流程。
步骤205、所述接口模块拒绝所述第一查询请求。
本实施例的数据查询系统,如图1和3所示,包括:存储有数据的数据库服务器101、设置于所述数据库服务器101中的接口模块102和客户服务器103。
所述接口模块102包括:
存储单元1021,用于设置用于存储至少一静态查询协议的静态协议库,每一静态查询协议分别与所述数据库服务器101中的数据相对应。其中,所述静态查询协议包括协议名。
所述客户服务器103用于向所述数据库服务器101发起第一查询请求,所述第一查询请求带有第一查询协议,所述第一查询协议包括第一协议名。所述第一查询协议还可以包括静态协议标识,所述静态协议标识用于表征第一查询协议的种类是静态查询协议,而不是下文所提的动态查询协议,也就是说,接口模块102可以通过协议标识来判定第一查询协议的种类。
所述接口模块102还包括:
第一查询单元1022,用于查询所述静态协议库存储的协议名中是否包括所述第一协议名,若是,则调用第一获取单元1023,若否,则调用第一拒绝单元1025。
所述第一获取单元1023,用于从所述数据库服务器101获取所述第一协议名所属的静态查询协议对应的数据。
传输单元1024,用于将获取到的数据传输至所述客户服务器103,然后结束调用。
所述第一拒绝单元1025,用于拒绝所述第一查询请求。
所述数据查询方法及系统将数据库服务器101中的数据划分成不同的部分并分别与静态查询协议对应,当客户服务器103发起带有第一查询协议的第一查询请求时,接口模块102通过识别第一查询协议来找到对应的数据。通过所述数据查询方法及系统可以避免客户服务器103拉取到数据库服务器101中的全量数据,防止出现数据冗余和传输通道堵塞。
实施例2
本实施例的数据查询方法在实施例1的数据查询方法上做了如下改进:所述接口模块还设置有用户配置文件(Profile)库,所述用户配置文件库存储有文件标识符(ProfileID)和与文件标识符对应的配置信息。
如图4所示,所述数据查询方法还包括:
步骤301、客户服务器向数据库服务器发起第二查询请求,所述第二查询请求带有动态查询协议,所述动态查询协议包括第一文件标识符。所述动态查询协议还可以包括动态协议标识,所述动态协议标识用于表征所述第二查询请求带有的查询协议的种类是动态查询协议,而不是上文所提的静态查询协议,也就是说,接口模块可以通过协议标识来判定查询协议的种类。
步骤302、所述接口模块查询所述用户配置文件库存储的文件标识符中是否包括所述第一文件标识符,若是,则执行步骤303,若否,则执行步骤306。
步骤303、所述接口模块从所述用户配置文件库中获取与所述第一文件标识符对应的配置信息。
步骤304、所述接口模块按照获取到的配置信息向所述数据库服务器发起请求。
步骤305、所述数据库服务器响应请求,将请求的数据传输至所述客户服务器,然后结束流程。
步骤306、所述接口模块拒绝所述第二查询请求。
本实施例的数据查询系统在实施例1的数据查询系统上做了如下改进:如图5所示,所述存储单元1021还用于设置用户配置文件(Profile)库,所述用户配置文件库存储有文件标识符(ProfileID)和与文件标识符对应的配置信息。
所述客户服务器还用于向数据库服务器发起第二查询请求,所述第二查询请求带有动态查询协议,所述动态查询协议包括第一文件标识符。所述动态查询协议还可以包括动态协议标识,所述动态协议标识用于表征所述第二查询请求带有的查询协议的种类是动态查询协议,而不是上文所提的静态查询协议,也就是说,接口模块可以通过协议标识来判定查询协议的种类。
所述接口模块还包括:
第二查询单元1022’,用于查询所述用户配置文件库存储的文件标识符中是否包括所述第一文件标识符,若是,则调用第二获取单元1023’,若否,则调用第二拒绝单元1025’。
所述第二获取单元1023’,用于从所述用户配置文件库中获取与所述第一文件标识符对应的配置信息。
转发单元1024’,用于按照获取到的配置信息向所述数据库服务器发起请求。
所述数据库服务器,用于响应请求,将请求的数据传输至所述客户服务器,然后结束调用。
所述第二拒绝单元1025’,用于拒绝所述第二查询请求。
在本实施方式中,所述数据查询方法及系统通过用户配置文件库将动态查询协议与数据库服务器中的数据相关联,当客户服务器发起带有动态查询协议的第二查询请求时,接口模块通过识别动态查询协议来找到对应的数据。通过所述数据查询方法可以便于避免客户服务器更灵活地查询数据库服务器中的数据。
实施例3
本实施例的数据查询方法与实施例2的数据查询方法基本相同,不同之处在于,本实施例的数据查询方法中,所述接口模块还设置有动态协议库,所述动态查询协议还包括请求查询的字段信息。如图6所示,所述数据查询方法还包括:
步骤303还包括:所述接口模块将所述动态查询协议存入所述动态协议库中。
将步骤304替换为步骤304’:所述接口模块按照获取到的配置信息将所述字段信息补充为完整的查询代码,将所述查询代码传输至所述数据库服务器,然后执行步骤307。
步骤307、所述数据库服务器按照所述查询代码将数据传输至所述客户服务器,然后结束流程。
本实施例的数据查询系统与实施例2的数据查询系统基本相同,不同之处在于,本实施例的数据查询系统中,所述存储单元还用于设置动态协议库;所述动态查询协议还包括请求查询的字段信息。
所述第二获取单元还用于将所述动态查询协议存入所述动态协议库中。
所述第二获取单元替换为:用于按照获取到的配置信息将所述字段信息补充为完整的查询代码,将所述查询代码传输至所述数据库服务器。
所述数据库服务器还用于按照所述查询代码将数据传输至所述客户服务器,然后结束调用。
下面对按照获取到的配置信息将所述字段信息补充为完整的查询代码的方式进行举例说明:
例如,所述动态查询协议中请求查询的字段信息采用FieldSet;动态查询协议的格式设置为:
[动态协议标识].[ProfileID].[FieldSet:Field A,Field B,Field C……]
假设某动态协议中的FieldSet设置如下:
[FieldSet:Field A,Field B,Field C,Field D,Field E,FieldF]
通过步骤304’得到补充后完整的查询代码为:
Select Field A,Field B,Field C,Field D,Field E,FieldF From[Database]..[Table]
通过本实施例的数据查询方法及系统,客户端服务器可以从数据库服务器提供的数据表中获取一部分数据,减少数据传输压力的同时,不会增加数据冗余。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。