数据访问方法和装置转让专利

申请号 : CN201610151390.1

文献号 : CN106341444B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王甲民

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本发明实施例公开了一种数据访问方法和装置。所述方法包括:基于设定数据访问接口接收客户端发送的数据访问请求,数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;基于所解析出的业务对象属性、操作符和目标属性或数值,按照与设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及将访问结果返回给客户端。本发明的技术方案优化了现有的基于数据库的数据访问系统的建立流程,减少了数据访问系统开发人员的工作量。

权利要求 :

1.一种数据访问方法,其特征在于,包括:

基于设定数据访问接口接收客户端发送的数据访问请求,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;

从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;

基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及将访问结果返回给所述客户端;

从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值包括:通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据;

在与所述表单项名称对应的第一数据中识别所述预设间隔符;

根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。

2.根据权利要求1所述的方法,其特征在于,所述数据访问请求为预设表单格式的数据,其中,所述名值对连接符为在所述表单格式下用于连接所述表单项名称以及所述表单项输入值的连接符。

3.根据权利要求1所述的方法,其特征在于,所述数据访问请求为JSON对象格式的数据,其中,所述JSON对象通过表单格式的数据封装生成;

所述JSON对象的名称对应于所述表单格式的数据中的表单项名称,所述JSON对象的值对对应于所述表单格式的数据中的表单项输入值,所述名值对连接符为在所述JSON对象格式下用于连接所述JSON对象的名称以及所述JSON对象的值对的连接符。

4.根据权利要求1所述的方法,其特征在于,所述预设间隔符为$、$$或_。

5.根据权利要求1所述的方法,其特征在于,所述设定数据访问接口通过Restful Web Service技术实现。

6.根据权利要求1所述的方法,其特征在于,所述访问结果采用JSON格式。

7.根据权利要求2或3所述的方法,其特征在于,所述数据访问接口由与客户端所递交表单的action属性对应的标准URI地址确定,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法。

8.一种数据访问方法,其特征在于,包括:

向服务器的设定数据访问接口发送数据访问请求,其中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;

接收所述服务器返回的与所述数据访问请求对应的数据访问结果;

其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的;

所述服务器从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值包括:所述服务器通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据;在与所述表单项名称对应的第一数据中识别所述预设间隔符;根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。

9.根据权利要求8所述的方法,其特征在于,向服务器的设定数据访问接口发送数据访问请求包括:根据用户发送的表单提交请求,生成所述数据访问请求;

根据与所递交表单的action属性对应的标准URI地址,确定所述服务器中响应所述数据访问请求的数据访问接口;其中,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法;

向与所述标准URI对应的所述设定数据访问接口发送所述数据访问请求。

10.根据权利要求8所述的方法,其特征在于,向服务器的设定数据访问接口发送数据访问请求包括:根据用户发送的表单提交请求,获取表单格式的递交数据;

将所述表单格式的递交数据封装为JSON对象,并将所述JSON对象作为所述数据访问请求;

根据与所递交表单的action属性对应的标准URI地址,确定所述服务器中响应所述数据访问请求的数据访问接口;其中,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法;

向与所述标准URI对应的所述设定数据访问接口发送所述数据访问请求。

11.一种数据访问装置,其特征在于,包括:

访问请求接收模块,用于基于设定数据访问接口接收客户端发送的数据访问请求,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;

访问请求解析模块,用于从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;

访问操作执行模块,用于基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及访问结果返回模块,用于将访问结果返回给所述客户端;

所述访问请求解析模块,具体用于:通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据;

在与所述表单项名称对应的第一数据中识别所述预设间隔符;

根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。

12.根据权利要求11所述的装置,其特征在于,所述数据访问请求为预设表单格式的数据,其中,所述名值对连接符为在所述表单格式下用于连接所述表单项名称以及所述表单项输入值的连接符。

13.根据权利要求11所述的装置,其特征在于,所述数据访问请求为JSON对象格式的数据,其中,所述JSON对象通过表单格式的数据封装生成;

所述JSON对象的名称对应于所述表单格式的数据中的表单项名称,所述JSON对象的值对对应于所述表单格式的数据中的表单项输入值,所述名值对连接符为在所述JSON对象格式下用于连接所述JSON对象的名称以及所述JSON对象的值对的连接符。

14.一种数据访问装置,其特征在于,包括:

访问请求发送模块,用于向服务器的设定数据访问接口发送数据访问请求,其中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;

返回结果接收模块,用于接收所述服务器返回的与所述数据访问请求对应的数据访问结果;

其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的;

所述服务器从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值包括:所述服务器通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据;在与所述表单项名称对应的第一数据中识别所述预设间隔符;根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。

说明书 :

数据访问方法和装置

技术领域

[0001] 本发明实施例涉及信息处理技术,尤其涉及一种数据访问方法和装置。

背景技术

[0002] 随着计算机技术的不断发展,越来越多的信息都是以数字化的形式存储于各种数据库中,因此,各类信息管理系统也营运而生。例如:XX学校建立为了维护学生信息所建立的学生信息管理系统,或者XX移动销售公司为了统计和维护销售产品所建立的移动销售信息管理系统等。一般来说,这类管理系统主要包括客户端软件以及存储数据库的后台服务器。
[0003] 其中,在图1中示出了一种学生信息管理系统的客户端软件的人机交互示意图。如图1所示,如果一个学生信息管理系统的操作用户需要进行学生信息的查询或者修改时,可以通过该客户端软件发送数据访问请求,后台数据库在接收到数据访问请求后,通过对数据库中的内容进行操作,进而向相应的客户端软件返回与该数据访问请求对应的结果数据。
[0004] 在现有技术中,在搭建上述信息管理系统的过程中,由于前台客户端(一般包括Web客户端以及移动App客户端)以及后台服务器一般使用不同的计算机技术,因此一般由不同技能的开发人员分工完成。主要的系统建设流程包括:客户端开发人员设计业务对象以及所需要的服务,服务器端根据客户端提供的需求,人工编写访问服务代码,最后通过客户端以及服务器接口的设计确认以及联调,最终实现系统的建立。
[0005] 现有技术的主要缺陷在于,前后台接口缺少统一接口规范,服务器端针对需要相似功能的客户端,也需要重复编写服务器端代码,也即,后台器服务缺少通用实现而无法复用,进而为后台服务器开发人员带来了大量的重复性工作量。

发明内容

[0006] 有鉴于此,本发明实施例提供一种数据访问方法和装置,以优化现有的基于数据库的数据访问系统的建立流程,大大减少数据访问系统开发人员的重复性工作量。
[0007] 在第一方面,本发明实施例提供了一种数据访问方法,包括:
[0008] 基于设定数据访问接口接收客户端发送的数据访问请求,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0009] 从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;
[0010] 基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及
[0011] 将访问结果返回给所述客户端。
[0012] 在第二方面,本发明实施例还提供了一种数据访问方法,包括:
[0013] 向服务器的设定数据访问接口发送数据访问请求,其中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0014] 接收所述服务器返回的与所述数据访问请求对应的数据访问结果;
[0015] 其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的。
[0016] 在第三方面,本发明实施例提供了一种数据访问装置,配置于服务器中,包括:
[0017] 访问请求接收模块,用于基于设定数据访问接口接收客户端发送的数据访问请求,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0018] 访问请求解析模块,用于从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;
[0019] 访问操作执行模块,用于基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及[0020] 访问结果返回模块,用于将访问结果返回给所述客户端。
[0021] 在第四方面,本发明实施例还提供了一种数据访问装置,配置于客户端中,包括:
[0022] 访问请求发送模块,用于向服务器的设定数据访问接口发送数据访问请求,其中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0023] 返回结果接收模块,用于接收所述服务器返回的与所述数据访问请求对应的数据访问结果;
[0024] 其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的。
[0025] 本发明实施例通过控制客户端将所递交表单中的业务对象属性、针对业务对象属性的操作符以及目标属性或数值以名值对的形式发送至服务器,服务器通过识别连接上述参数的特定间隔符以解析上述参数的技术手段,可以实现基于通用性的数据解析方法获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果,优化现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的重复性工作量。

附图说明

[0026] 图1是现有技术的一种学生信息管理系统的客户端软件的人机交互示意图;
[0027] 图2是本发明第一实施例的一种数据访问方法的流程图;
[0028] 图3是本发明第二实施例的一种数据访问方法的流程图;
[0029] 图4是本发明第三实施例的一种数据访问方法的流程图;
[0030] 图5是本发明第四实施例的一种数据访问方法的流程图;
[0031] 图6a是基于本发明实施例的一种后台服务器的实现框架图;
[0032] 图6b是现有技术与本发明实施例中的数据访问系统的搭建流程对比图;
[0033] 图7是本发明第七实施例的一种数据访问装置的结构图;
[0034] 图8是本发明第八实施例的一种数据访问装置的结构图。

具体实施方式

[0035] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
[0036] 另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0037] 为了便于后续说明,首先对本方案的发明构思进行简单介绍:
[0038] 一般来说,对于通过前台的WEB客户端或移动App客户端访问后台数据服务器的系统来说,客户端主要通过HTTP(HyperText Transfer Protocol,超文本传输协议)的GET命令或POST命令传递form表单数据给后台数据服务器,其中,所述form表单中包括有多个名值对(name-value)列表,后台数据服务器通过解析名值对列表中的命令和数据,完成数据访问或业务操作,返回结果数据或页面给客户端;
[0039] 其中,form表单是数据传输过程中的底层数据,这种形式的传输对数据组织缺乏管理,形式十分原始。为了便于后续的数据处理,客户端的开发人员还可以在向后台数据服务器传递数据之前,首先将form表单数据转化为JSON对象的格式(典型的,通过封装或者打包的方式),即:将form表单里的所有数据转化的具有一定规范的JSON对象格式的数据(标准化的名值对格式数据),然后传输到后台数据服务器,后台数据服务器接收到的数据是直接可以使用的合格JSON代码。
[0040] 例如:一个典型的form表单格式的数据为:
[0041]
[0042] 将其转化后的JSON对象格式的数据为:
[0043]
[0044] 然而,不管客户端发送的是上述哪种形式的数据,服务器端的开发人员都要根据与客户端开发人员的编程约定,从接收的数据的设定位置或者按照设定的数据解析方式,从客户端发送的数据中解析出基于业务对象属性(也可称为字段)的基本操作指令,输出至与该业务对象对应的数据处理接口(URI地址)中进行处理。例如,针对一条在字段名为“name”的数据记录中,模糊匹配字段值为“张三”的数据的基本操作指令,服务器需要根据约定,从接收到的form表单或者JSON对象所对应的名值对数据中,依次提取出属性名:“name”、针对属性名的操作类型:“模糊匹配”以及属性值:“张三”。
[0045] 显然,现有技术的主要缺陷在于,前后台接口缺少规范,后台服务缺少通用实现而无法复用,同时,如果客户端产生需求变更(增加按性别查询功能),需要服务器端同步修改代码以适应客户端的修改。
[0046] 通过研究发现:不论客户端发送的是form表单类型的数据,还是JSON对象类型的数据,其本质均是要发送名值对形式的数据,差别在于,两者通过不同的名值对连接符相连,form表单类型的名值对通过“=”相连,例如:“input name='name'”,JSON对象类型的名值对通过“:”相连,例如:“"name":"Bender"”。如果可以将一个如前所述的基本操作指令以名值对的形式来表示,服务器端不论客户端发送何种形式的数据,均可通过对名值对的简单解析,获取所述的数据和指令。
[0047] 为了实现上述方案需要克服的技术难点是:一个如前所述的基本操作指令需要包括三个参数(属性名:“name”、针对属性名的操作类型:“模糊匹配”以及属性值:“张三”),或者说需要使用三元组数据表示,而名值对的数据形式为二元组数据形式,如果不经过处理,无法使用该名值对表示该基本操作指令。基于此,发明人创造性的提出,将基本操作指令中的业务对象属性以及针对业务对象属性的操作符通过一个个性化的间隔符连接后,作为名值对中的第一数据,将属性值作为名值对中的第二数据,这样既可巧妙的使用二元组形式的名值对来表示包括有三个参数的基本操作指令。
[0048] 基于上述操作命令的构成规则可以成功地把一个操作命令三元组转换为符合赋值语法的二元组,例如age+1转换为age$inc=1(inc表示“+”命令符号)。这种转换方式极大地简化了属性操作命令的表示方法,与form表单以及移动App界面元素保持整齐一致,在不增加现有开发技术复杂性前提下,大幅度提高前后台接口标准化程度和服务自动化处理能力,也即本发明的核心发明点。
[0049] 第一实施例
[0050] 图2为本发明第一实施例提供的一种数据访问方法的流程图,本实施例的方法可以由数据访问装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于服务器中,且本实施例的方法一般可适用于服务器根据客户端的数据访问请求,查询本地存储的数据库并返回相应的访问结果的情形。本实施例的方法具体包括:
[0051] 210、基于设定数据访问接口接收客户端发送的数据访问请求。
[0052] 在本实施例中,前端客户端的开发人员根据form表单的不同功能将不同form表单的action属性设置为与后台服务器的数据访问接口对应的URI(Uniform Resource Identifie,统一资源标识符)地址。其中,form表单的action属性用于指明当提交表单时,向何处发送表单数据。
[0053] 在上述设置完成后,当客户端用户在本地递交与访问内容对应的form表单时,与所述form表单对应的数据访问请求会自动发送至所述form表单的action属性所设置的服务器的设定数据访问接口。
[0054] 在本实施例中,所述数据访问请求可以为预设表单格式的数据,也可以为JSON对象格式的数据,本实施例对此并不进行限制。
[0055] 其中,如果数据访问请求为JSON对象格式的数据,则在客户端用户递交form表单后,将该form表单封装为JSON对象格式的数据后,作为数据访问请求进行发送。
[0056] 典型的,所述数据访问请求为HTTP GET命令或POST命令形式的内容。
[0057] 在本实施例中,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值。
[0058] 如前所述,为了把一个操作命令三元组转换为符合赋值语法的二元组,客户端在设置某一目标表单项名称(也称为表单的name属性)时,需要将业务对象属性以及针对业务对象属性的操作符通过一个预设间隔符相连后的整体作为表单项名称。在用户递交该目标表单后,会相应生成包括所述目标表单项名称以及通过该目标表单的表单项输入值(也即表单的value属性)获取的由用户输入的目标属性或数值构成的名值对,该名值对通过名值对连接符相连。
[0059] 典型的,如果所述数据访问请求为预设表单格式的数据,名值对连接符可以为“=”;如果所述数据访问请求为JSON对象格式的数据,名值对连接符可以为“:”。
[0060] 其中,在选取该预设间隔符时,也需要仔细考量,要求由该预设间隔符构成的表单项名称既要满足变量名称规范、足够简单易用,并足够特殊以保证不与业务对象属性的名称混淆。
[0061] 发明人通过仔细甄选,确定所述预设间隔符优选可以为:“$”、“$$”或“_”。当然本领域技术人员可以理解的是,该预设间隔符还可以基于上述选取原则选取为其他形式的符号,本实施例对此并不进行限制。
[0062] 其中,与客户端所递交表单的表单项名称对应的业务对象属性具体可以指用户所访问的业务对象的字段名称,例如,名为“student”的业务对象(或者说数据记录)中,包括有“name”、“age”以及“sex”字段,上述字段的字段名称为所述业务对象属性。针对业务对象属性的操作符具体是指针对该字段名称对应的字段值所执行的相关操作,而与表单项输入值对应的由用户输入的目标属性或数值具体是指与该业务对象属性的操作符关联的操作属性或者操作数值。
[0063] 在一个具体例子中,如果一个表单项名称设置为age$inc,可以确定与该表单对应的业务对象属性为“age”,针对业务对象属性的操作符为“+”,用户输入的操作数值为“1”,发送给后台服务的操作命令为age$inc=1,该操作命令对应于将age字段中的字段值+1。
[0064] 220、从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值。
[0065] 如前所述,业务对象属性、操作符和目标属性或数值这三者通过预设间隔符以及名值对连接符依次相连。因此,在本实施例的一个优选的实施方式中,可以通过关键词匹配的方式,首先识别出所述数据访问请求中包括的预设间隔符以及名值对连接符,进而可以获取业务对象属性、操作符和目标属性或数值;
[0066] 在本实施例的另一个优选的实施方式中,由于所述业务对象属性、操作符和目标属性或数值相对于所述预设间隔符的位置固定,因此可以首先识别出所述数据访问请求中包括的预设间隔符,之后根据所述业务对象属性、操作符和目标属性或数值与所述预设间隔符之间的相对位置关系,解析出业务对象属性、操作符和目标属性或数值。
[0067] 更一般的,设定数据访问接口在接收到数据访问请求之后,后台基础服务框架(典型的,Java下tomcat应用服务)首先将数据访问请求解析为名值对形式的二元组数据,即,可以直接解析出目标属性或数值,之后通过在与表单项名称对应的数据中识别预定分隔符,进而可以分别获取所述业务对象属性以及操作符。
[0068] 230、基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作。
[0069] 在本实施例中,服务器中不同的URI地址对应于不同业务对象的数据访问接口,可以基于本地存储的数据库中的数据按照不同的业务对象访问方法(典型的,增、删、改以及查),执行相应数据访问操作。
[0070] 在将所解析出的业务对象属性、操作符和目标属性或数值输入至所述设定数据访问接口后,该接口会按照对应的业务对象访问方法,执行相应数据访问操作。
[0071] 在本实施例的一个优选的实施方式中,服务器为每个业务对象提供完全相同的一组功能完整的统一业务对象访问方法,对外发布的接口优选采用Restful Web Service技术实现。
[0072] 客户端优选采用HTTP GET命令发送数据访问请求,以便最大限度保持兼容性,便于直接在原生浏览器上实现后台服务的测试、调试、运维操作。
[0073] 240、将访问结果返回给所述客户端。
[0074] 一般情况下,服务器针对客户端的数据访问请求可以产生对应的返回结果,也可以不产生任何返回结果(例如,仅在服务器中的数据库中添加或者删除相应的数据信息),在本实施例的优选实施方式中,针对所述客户端发送的数据访问请求,所述服务器均产生一个访问结果,用于客户端的解析以及展示。
[0075] 优选的,所述返回结果为JSON对象格式的数据,该返回结果的内容可以包括成功标志、失败信息及正确的结果数据等。
[0076] 本发明实施例通过控制客户端将所递交表单中的业务对象属性、针对业务对象属性的操作符以及目标属性或数值以名值对的形式发送至服务器,服务器通过识别连接上述参数的特定间隔符以解析上述参数的技术手段,可以实现基于通用性的数据解析方法获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果,优化现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的重复性工作量。
[0077] 在现有技术中,还具有一个明显的技术问题:在客户端的服务需求发生变更时,服务器端的开发人员需要同步调整对应的访问服务代码,此外,接口的设计确认、需求变更修改以及联调,会使客户端以及服务器端的开发人员产生大量的沟通管理工作量。
[0078] 基于上述技术问题,在本实施例的一个优选的实施方式中,可以由服务器端的开发人员设计标准操作符集以及标准访问方法集,并将该准操作符集以及标准访问方法集提供给客户端的开发人员。使得客户端的开发人员使用服务器预先定义的标准操作符以及标准访问方法编写客户端代码,进而可以实现服务器端代码仅经过一些设定的数据变换处理后,即可实现在与不同客户端对应的不同服务器中进行复用。
[0079] 其中,所述标准操作符集中定义了可以满足客户端开发人员基本需求的操作符。在表1中示出了一种标准操作符集的示意表。
[0080] 表1
[0081]
[0082] 其中,所述标准访问方法集中定义了与服务器中不同数据访问接口对应的URI地址,不同的URI地址使用不同的业务对象访问方法,执行相应数据访问操作。客户端的开发人员根据前端所需调用的数据处理,在所述标准访问方法集中获取相应的URI地址,以使服务器执行相应数据访问功能。在表2中示出了一种标准访问方法集的示意表。其中,beanPath对应于不同的业务对象。
[0083] 表2
[0084]
[0085] 相应的,在上述各实施例的基础上,所述数据访问接口由与客户端所递交表单的action属性对应的标准URI地址确定,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法。以实现对服务器端代码的复用。
[0086] 第二实施例
[0087] 图3是本发明第二实施例的一种数据访问方法的流程图。本实施例以上述各实施例为基础进行优化,在本实施例中,将所述数据访问请求优化为预设表单格式的数据,其中,所述名值对连接符为在所述表单格式下用于连接所述表单项名称以及所述表单项输入值的连接符。
[0088] 同时,将从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值优化为:通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据,解析出所述目标属性或数值;在与所述表单项名称对应的第一数据中识别所述预设间隔符;根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。
[0089] 相应的,本实施例的方法具体包括:
[0090] 310、基于设定数据访问接口接收客户端发送的预设表单格式的数据访问请求。
[0091] 在本实施例中,所述数据访问请求具体为预设表单格式的数据。
[0092] 相应的,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值。
[0093] 其中,所述名值对连接符为在所述表单格式下用于连接所述表单项名称以及所述表单项输入值的连接符,典型的,所述名值对连接符具体为“=”。
[0094] 在本实施例的一个优选的实施方式中,服务器端的开发人员针对不同的业务对象以及所应用的标准访问方法定义不同的URI地址,业务对象属性与针对对象属性的操作符构成的操作命令作为URI的参数(GET或POST),一个基本的HTTP GET命令形式是数据访问请求为http://.../{业务对象名称}/{标准命令}?{业务对象属性}${操作}={目标属性或数值}&…。320、通过后台基础框架服务,将所述数据访问请求转化为与所述表单项名称以及与所述表单项输入值分别对应的二元组数据。
[0095] 330、在与所述表单项名称对应的第一数据中识别所述预设间隔符。
[0096] 340、根据所述预设间隔符在所述第一数据中的位置,解析出所述业务对象属性以及所述操作符。
[0097] 在一个具体的例子中,如果客户端发送的数据访问请求中包括“name$like=张三”形式的数据,后台基础服务框架会自动将该数据转化为(name$like,张三)二元组,之后通过在name$like中识别“$”,可以最终解析出(name,like,张三),进而简单的获取到对象属性、操作符和目标属性或数值。
[0098] 需要再次强调的是:与现有的开发方法相比,本发明实施例仅仅增加了解析name$like的部分的工作,在不改变传统开发方法和降低传统开发的能力的前提下,加强了前后台的接口规范,实现对服务器端代码的复用。对于特殊的需要定制实现的程序逻辑,可以不解析name$like而直接视其为一个标准的变量,使用开发语言(典型的,java或javascript语言)实现私有定制程序逻辑。
[0099] 350、基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作。
[0100] 360、将访问结果返回给所述客户端。
[0101] 本实施例的技术方案通过基于设定数据访问接口接收客户端发送的预设表单格式的数据访问请求从所接收的数据访问请求中识别所述预设间隔符,根据所述操作符所在的位置,识别所述名值对连接符,根据所述名值对连接符所在的位置,解析出所述目标属性或数值的技术手段,可以实现基于通用性的数据解析方法获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果。
[0102] 特别的,客户端的开发人员需要临时修改或者调试客户端程序代码时,如果客户端软件无法打开,该开发人员需要手动在原生浏览器中输入与数据访问请求对应的HTTP GET命令,而表单形式的数据访问请求对格式要求较严格,直接输入不便,通过使用本实施例的方法,客户端开发人员可以简单直接的基于业务对象属性、操作符和目标属性或数值构造HTTP GET命令并发送给服务器,大大方便了开发人员编程以及调试的便利性。
[0103] 第三实施例
[0104] 图4是本发明第三实施例的一种数据访问方法的流程图。本实施例以第一实施例为基础进行优化,在本实施例中,将所述数据访问请求优化为JSON对象格式的数据。
[0105] 相应的,本实施例的方法具体包括:
[0106] 410、基于设定数据访问接口接收客户端发送的JSON对象格式的数据访问请求。
[0107] 在本实施例中,所述数据访问请求为JSON对象格式的数据,所述JSON对象通过表单格式的数据封装生成。
[0108] 其中,所述JSON对象的名称对应于所述表单格式的数据中的表单项名称,所述JSON对象的值对对应于所述表单格式的数据中的表单项输入值,所述名值对连接符为在所述JSON对象格式下用于连接所述JSON对象的名称以及所述JSON对象的值对的连接符,所述名值对连接符具体为“:”。
[0109] 相应的,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0110] 420、从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值。
[0111] 如前所述,在现有的公共框架服务中,可以自动解析出JSON对象,本实施例的方法主要通过识别预设间隔符的方式,解析出所述业务对象属性以及所述操作符。
[0112] 430、基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作。
[0113] 440、将JSON对象形式的访问结果返回给所述客户端。
[0114] 本实施例的技术方案,通过基于设定数据访问接口接收客户端发送的JSON对象格式的数据访问请求并根据识别出的预设间隔符的位置,从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值的技术手段,可以实现基于通用性的数据解析方法获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果,优化现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的工作量。
[0115] 第四实施例
[0116] 图5为本发明第四实施例提供的一种数据访问方法的流程图,本实施例的方法可以由数据访问装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于客户端中,且本实施的方法一般可适用于客户端向服务器发送数据访问请求,接收所述服务器返回的访问结果的情形。本实施例的方法具体包括:
[0117] 510、向服务器的设定数据访问接口发送数据访问请求。
[0118] 在本实施例中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值。
[0119] 在本实施例中,客户端通过将所述递交表单的name属性(也即表单项名称)配置为业务对象属性、预设间隔符以及针对业务对象属性的操作符,并将与所递交表单的表单项输入值对应的由用户输入的目标属性或数值作为所述表单的value属性,即可生成所述的数据访问请求。
[0120] 在本实施例中,通过将所递交表单的action属性配置为与服务器的设定数据访问接口对应的URI地址,即可实现向服务器的设定数据访问接口发送数据访问请求。
[0121] 优选的,所述数据访问请求中包括的针对业务对象属性的操作符以及与服务器的设定数据访问接口对应的URI地址为所述服务器端提供的标准操作符集以及标准业务对象操作方法集中的元素,以使服务器可以采用通用性的数据解析方法来获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果
[0122] 520、接收所述服务器返回的与所述数据访问请求对应的数据访问结果。
[0123] 其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的。
[0124] 本发明实施例通过控制客户端将所递交表单中的业务对象属性、针对业务对象属性的操作符以及目标属性或数值以名值对的形式发送至服务器,服务器通过识别连接上述参数的特定间隔符以解析上述参数的技术手段,优化了现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的工作量。
[0125] 在上述各实施例的基础上,向服务器的设定数据访问接口发送数据访问请求可以包括:
[0126] 根据用户发送的表单提交请求,生成所述数据访问请求;
[0127] 根据与所递交表单的action属性对应的标准URI地址,确定所述服务器中响应所述数据访问请求的数据访问接口;其中,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法;
[0128] 向与所述标准URI对应的所述设定数据访问接口发送所述数据访问请求。
[0129] 在上述各实施例的基础上,向服务器的设定数据访问接口发送数据访问请求还可以包括:
[0130] 根据用户发送的表单提交请求,获取表单格式的递交数据;
[0131] 将所述表单格式的递交数据封装为JSON对象,并将所述JSON对象作为所述数据访问请求;
[0132] 根据与所递交表单的action属性对应的标准URI地址,确定所述服务器中响应所述数据访问请求的数据访问接口;其中,所述标准URI地址对应于相应业务对象以及标准访问方法集中的标准访问方法;
[0133] 向与所述标准URI对应的所述设定数据访问接口发送所述数据访问请求。
[0134] 在图6a中示出了基于本发明实施例的一种后台服务器的实现框架图,结合图6a,对用于实施本发明实施例的客户端以及服务器交互性的完成的一个典型的数据访问过程进行描述如下:
[0135] 前端(或者说客户端)数据录入:WEB端或移动App端通过数据表单录入要处理的数据,输入完成后提交给与后台服务器对应的URI地址,每个URI地址对应一个业务对象访问方法。WEB表单基本设计方法是把表单项名称设置为{业务对象属性}${操作符号}的形式,表单项输入值由表单的value属性获得。
[0136] 因此,WEB表单提交动作就自动构成一系列基本操作命令三元组{业务对象属性}${操作符号}={目标属性或数值}到后台服务器中相应的URI地址。如果前端使用javascript或App构造json对象提交到后端服务,仍然可以使用本发明的三元组表示法,这一切得益于{业务对象属性}${操作符号}是一个合法的javascript和Java变量名。
[0137] 后台服务(或者说服务器)处理:后台服务器接收到前端传递过来的标准化格式参数后,解析操作命令,访问及操作对应的后台数据。基本规则是业务对象属性对应数据库对象的字段,针对业务对象属性的操作符指定相应字段的操作方法,逻辑操作符查询定位数据,设置操作符更新数据,以及一些通用访问处理操作符,如分页、排序、分组聚合计算等。后台服务最终通过访问数据库处理完成相应请求后返回相应的请求结果以及请求状态,若有错误发生返回错误码及对应的错误信息,返回结果通常以Json对象格式表示。
[0138] 前端处理结果展示:前端接收后台服务返回的结果,首先解析是否有错误发生,若有错误则提示用户进行错误处理,若没有错误则显示返回信息供用户下一步处理。
[0139] 以一个通过姓名和性别查询人员的WEB页面为例。设置WEB表单姓名输入框标签name属性为name$like(对名称属性进行模糊查询),性别下拉框标签即可,完全不需要修改后台服务器中的代码内容。
[0142] 基于上述实例的分析,在图6b是现有技术与本发明实施例中的数据访问系统的搭建流程对比图,通过对比可知,本发明实施例的方法对于一般性互联网环境下后台数据服务访问(如移动销售系统、工单管理系统等),可以使用工具直接生成后台服务器代码。主要原因针对一般性互联网环境下后台数据服务访问来说,客户端需要的业务对象访问方法以及针对业务对象属性的操作方法比较相似,通过编写一套统一的后台服务器代码的方式,即可满足不同客户端的使用需求,也即实现了后台服务器代码的复用。
[0143] 如图6b所示,现有技术需要人工编码实现后台服务,本发明实施例的方法直接使用工具生成,对于工具代码生成不能满足的功能,可以通过人工扩展或重新开发完成。发明人通过研究测试发现:工具生成的统一的通用后台服务代码,建立在精心设计统一的操作符号和操作方法之上,具有非常好的灵活性和可靠性,且经过了严密的功能及性能测试,足以满足信息操作类管理系统70%以上需求,信息检索95%以上需求,大幅提高研发效率和产品质量,整体数据访问类应用系统研发效率提升50%左右。在大大节约人力成本的基础上,有效提升了系统研发效率。
[0144] 第五实施例
[0145] 在图7中示出了本发明第五实施例的一种数据访问装置的结构图,所述数据访问装置配置于服务器中,如图7所示,所述装置包括:访问请求接收模块71、访问请求解析模块72、访问操作执行模块73以及访问结果返回模块74。其中:
[0146] 访问请求接收模块71,用于基于设定数据访问接口接收客户端发送的数据访问请求,所述数据访问请求包括:与客户端所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0147] 访问请求解析模块72,用于从所接收的数据访问请求中解析出业务对象属性、操作符和目标属性或数值;
[0148] 访问操作执行模块73,用于基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作;以及
[0149] 访问结果返回模块74,用于将访问结果返回给所述客户端。
[0150] 本发明实施例通过控制客户端将所递交表单中的业务对象属性、针对业务对象属性的操作符以及目标属性或数值以名值对的形式发送至服务器,服务器通过识别连接上述参数的特定间隔符以解析上述参数的技术手段,可以实现基于通用性的数据解析方法获取上述参数,并根据接收上述参数的标准化的数据访问接口,生成对应的访问结果的技术效果,优化现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的工作量。
[0151] 在上述各实施例的基础上,所述数据访问请求可以为预设表单格式的数据,其中,所述名值对连接符为在所述表单格式下用于连接所述表单项名称以及所述表单项输入值的连接符。
[0152] 在上述各实施例的基础上,所述数据访问请求可以为JSON对象格式的数据,其中,所述JSON对象通过表单格式的数据封装生成;
[0153] 所述JSON对象的名称对应于所述表单格式的数据中的表单项名称,所述JSON对象的值对对应于所述表单格式的数据中的表单项输入值,所述名值对连接符为在所述JSON对象格式下用于连接所述JSON对象的名称以及所述JSON对象的值对的连接符。
[0154] 在上述各实施例的基础上,所述预设间隔符可以为$、$$或_。
[0155] 本发明实施例所提供的数据访问装置可用于执行本发明实施例一至实施例三提供的数据访问方法,具备相应的功能模块,实现相同的有益效果。
[0156] 第六实施例
[0157] 在图8中示出了本发明第六实施例的一种数据访问装置的结构图,所述数据访问装置配置于客户端中,如图8所示,所述装置包括:访问请求发送模块81以及返回结果接收模块82。其中:
[0158] 访问请求发送模块81,用于向服务器的设定数据访问接口发送数据访问请求,其中,所述数据访问请求包括:与所递交表单的表单项名称对应的业务对象属性、预设间隔符以及针对业务对象属性的操作符、名值对连接符、以及与表单项输入值对应的由用户输入的目标属性或数值;
[0159] 返回结果接收模块82,用于接收所述服务器返回的与所述数据访问请求对应的数据访问结果;
[0160] 其中,所述数据访问结果是所述服务器根据基于所解析出的业务对象属性、操作符和目标属性或数值,按照与所述设定数据访问接口对应的业务对象访问方法,执行相应数据访问操作而访问获得的。
[0161] 本发明实施例通过控制客户端将所递交表单中的业务对象属性、针对业务对象属性的操作符以及目标属性或数值以名值对的形式发送至服务器,服务器通过识别连接上述参数的特定间隔符以解析上述参数的技术手段,优化了现有的基于数据库的数据访问系统的建立流程,大大减少了数据访问系统开发人员的工作量。
[0162] 本发明实施例所提供的数据访问装置可用于执行本发明实施例四提供的数据访问方法,具备相应的功能模块,实现相同的有益效果。
[0163] 显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的服务器以及客户端来配合实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
[0164] 以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。