CN108897897A - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN108897897A CN108897897A CN201810819845.1A CN201810819845A CN108897897A CN 108897897 A CN108897897 A CN 108897897A CN 201810819845 A CN201810819845 A CN 201810819845A CN 108897897 A CN108897897 A CN 108897897A
- Authority
- CN
- China
- Prior art keywords
- embedded
- model
- data
- specific mark
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于软件开发技术领域,公开了一种数据处理方法和装置,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述方法接收数据处理接口指令;获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。由于本发明中所采用的是具有层次结构的嵌入式模型,因此,在服务端进行操作时,仅需要对该嵌入式模型进行相关操作,会自动获取与嵌入式模型对应数据表具有关联关系的其它数据表的相关数据,大大减少了操作步骤,减少了代码编写数量。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种数据处理方法和装置。
背景技术
随着云计算技术的发展,多层架构(n-tier)逐渐替代了客户端-服务器架构(c/s)成为关系型数据库应用开发的主流架构。其中,多层架构可以包括有多个层的应用结构,例如,采用数据访问层、业务逻辑层以及表示层来实现多层结构。
在数据访问层中,对象关系映射(Object-relationalmapping,简称ORM)框架是常用的开发框架。
由于关系型数据库中的表是二维结构的,即行和列为结构的数据表,因此,使用ORM框架所对应数据表创建的模型通常也都是二维结构的,但是,二维结构的模型灵活性较差,在服务端进行编程时,如果多个数据表之间具有关联性,需要对多个数据表分别进行模型的建立和代码的编写,工作量大,且在调用时较为繁琐,处理效率不高。
发明内容
有鉴于此,本发明实施例公开了一种数据处理方法和装置,以扩展传统ORM框架的功能,在情况复杂的情况下,仅需要对一个模型进行操作即可,简化处理流程。
为了实现上述目的,本发明实施例公开的内容如下:
本发明公开了一种数据处理方法,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
接收数据处理接口指令;
获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;
得到操作结果。
可选的,还包括:
根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
依次运行多条所述数据库更新语句,对数据库进行更新。
可选的,所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型可以实现级联增加的第三参数以及用于表征被嵌入式模型可以实现级联删除的第四参数。
可选的,所述数据处理接口指令为查询接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述查询接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的被嵌入模型与嵌入式模型的关系的被嵌入模型状态特定标注;
依据所述第二参数获取所述嵌入式模型属性所对应的参数值;
将所述参数值作为查询参数查询与所述嵌入式模型相关联的多个数据表。
可选的,所述数据处理接口指令为增加接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述增加接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的自动赋值特定标注;
将增加接口指令中的参数值保存到嵌入式模型的属性中,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
可选的,所述数据处理接口指令为删除接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述删除接口指令对应的嵌入式模型;
获取所述嵌入式模型中的被嵌入模型特定标注;
根据所述第四参数删除嵌入式模型中与该第四参数对应的被嵌入模型属性。
可选的,所述数据处理接口指令为修改接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述修改接口指令对应的嵌入式模型;
获取所述嵌入式模型中的自动赋值特定标注;
依据修改接口指令中的参数值修改嵌入式模型的属性,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
本发明另一方面公开了一种数据处理装置,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
接收单元,用于接收数据处理接口指令;
获取单元,用于获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
执行单元,用于依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。
可选的,还包括:
添加列表单元,用于根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
更新列表单元,用于当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
语句生成单元,用于根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
数据库更新单元,用于依次运行多条所述数据库更新语句,对数据库进行更新。
可选的,所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型可以实现级联增加的第三参数以及用于表征被嵌入式模型可以实现级联删除的第四参数。
由上述方案可以看出,本发明实施例公开了一种数据处理方法和装置,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法接收数据处理接口指令;获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。由于本发明中所采用的是具有层次结构的嵌入式模型,因此,在服务端进行操作时,仅需要对该嵌入式模型进行相关操作,会自动获取与嵌入式模型对应数据表具有关联关系的其它数据表的相关数据,大大减少了操作步骤,减少了代码数量,提高了软件开发的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例中公开的订单嵌入式数据模型的结构示意图;
图2是本发明实施例中提供的一种数据处理方法的流程示意图;
图3是本发明实施例中提供的一种数据处理方法的另一种流程示意图;
图4是本发明实施例公开的一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例主要应用在软件开发中的多层架构中数据访问层的开发,主要应用于ORM框架中。来实现简化服务端编程的复杂度和执行步骤。
本发明技术方案中,构建有嵌入式模型,与传统模型不同的是,本发明中的嵌入式模型是层次结构的,例如,传统的技术方案中,典型的订单涉及通常对应三个不同的数据表,分别为订单头、订单明细以及定人销售人员,因此,需要建立“OrderHeader、OrderDetail、SalesPerson”这三个二维结构的模型与之相对应。本申请技术方案中,构建的嵌入式模型,是基于其中的如OrderHeader为基础建立Order模型,然后以这三个数据表所相关联的特定字段,例如OrderID作为特定关键字将订单明细以及定人销售人员中的数据即OrderDetail集合和SalesPerson字段嵌入到Order模型的属性中,使得Order模型由二维结构变为嵌入了OrderDetail集合和SalesPerson的层次结构。如图1所示,图1是本发明实施例中订单嵌入式数据模型的结构示意图。从图1可以看出,嵌入式模型可以更自然的直接的反应出真实业务的本质。
需要说明的是,从客户端传来的数据依然是二维数据结构,因此,需要预先进行转换后才能使用本申请中的嵌入式模型。
针对于此,本发明实施例会将客户端所传入的数据转换成可高效访问的数据结构。在ORM框架下,采用特定数据结构ModelEntry来标识数据行和状态,并提供开发接口来获取行的状态、列的原始值和最新值。其中,行的状态包括未修改、已修改以及新增。
实际使用中,以客户端使用JSON格式的数据为例,假设客户端传入的数据包括:
[
{“id”:1,“name”:”John1”,age:30,__ROWSTATE:”NEW”},
{“id”:2,“id_org”:2,“name”:”John2”,“name_org”:”John0”,“age”:30,“age_org”:18,“__ROWSTATE”:”MODIFIED”}
]
则,服务端会针对此数据利用JSON解析器读取该数据并将其保存在ModelEntry中建立两个ModelEntry实例。其中,每行数据用一个Map(键值对)存储,每个ModelEntry实例都有一个Map(键值对)存储一行数。当需要调用第二个ModelEntry实例的获取原始值接口(GetOriginalValue(“age”))时,ModelEntry会从内部的Map中把键为“age_org”对应的值取出并返回给调用方;同样的,调用第二个ModelEntry实例的获取数据行状态接口(GetRowState()),ModelEntry会从内部的Map中把键为“__ROWSTATE”对应的值取出并返回给调用方。
如此就可以通过该可高效访问的数据结构获取数据及其状态而无需考虑具体格式。
需要说明的是,本发明中嵌入式数据模型的本质是一个二维结构数据模型中嵌入一个或多个二维结构数据模型或其集合,在服务端进行编程时,只需要对嵌入式模型的操作就可以实现自动对嵌入模型或其集合的相关操作。
下面对本发明的具体实施方式进行详细介绍。
参见图2,图2是本发明实施例中公开的一种数据处理方法的流程示意图。
本发明公开了一种数据处理方法,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
S101、接收数据处理接口指令;
本发明实施例中,当接收数据处理接口指令时,会对嵌入式模型进行例如增、删、查、改的操作。其中,数据处理接口指令包括查询接口指令、增加接口指令、删除接口指令以及修改接口指令。其中,查询接口指令用于调用查询相关接口对嵌入式模型进行查询操作,得到查询结果,增加接口指令用于调用增加相关接口对嵌入式模型进行增加操作,自动完成被嵌入模型的增加操作,删除接口指令用于调用删除相关接口对嵌入式模型进行删除操作,自动完成被嵌入模型的删除操作,修改接口指令用于调用修改相关接口对嵌入式模型进行修改操作,自动完成对被嵌入模型的修改操作。具体过程在后续进行详细介绍。
S102、获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
本发明实施例中,会根据数据处理接口指令来获取嵌入式模型中的特定标注。
所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型可以实现级联增加的第三参数以及用于表征被嵌入式模型可以实现级联删除的第四参数。
实际使用中,自动赋值标注添加在被嵌入模型或其集合在嵌入模型中所对应的属性上。
自动赋值标注可以表示为:SetValue(string source,string target,SetValueStrategystrategy,ModelSelectorselector)。
其中,string source用于指定数据值的来源,string target,用于指定填充目标,自动赋值标注用于指定数据值的来源和填充目标,来源是嵌入模型上的属性,填充目标是被嵌入模型上的属性。
SetValueStrategystrategy用于指定赋值条件,赋值条件包括:AfterCreate–在新增嵌入模型后赋值,AfterUpdate-在修改嵌入模型后赋值,Always-在新增、修改嵌入模型后赋值。
ModelSelectorselector用于指定被嵌入模型或其集合的选择条件,选择条件包括:All–所有,Changed Only–仅给状态为新增、已修改的被嵌入模型赋值,UnchangedOnly–仅给状态为未修改的被嵌入模型赋值。
被嵌入模型状态特定标注表征被嵌入模型与嵌入式模型关系,用于指定被嵌入模型的类型、级联查询时的参数来源、级联增加标志和级联删除标志。
实际使用中,用于上述实例中的Order模型中的OrderDetail集合对应的表征被嵌入模型与嵌入式模型关系的被嵌入模型状态特定特定标注可以表示为:
ModelEmbedded(typeof(OrderDetail),ParamValu=”OrderId”,CascadeCreate=true,CascadeDelete=true)。
其中,typeof(OrderDetail)为第一参数,表示被嵌入模式的类型,ParamValu=”OrderId”为第二参数,表示级联查询时的参数来源,如果有多个参数,中间使用逗号隔开。CascadeCreate=true为第三参数,用于表示新增嵌入模型对应的数据后自动级联新增被嵌入模型对应的数据,CascadeDelete=true为第四参数,用于表示删除嵌入模型对应的数据前自动级联删除被嵌入模型对应的数据。
实际使用中,用于上述实例中Order模型中的SalesPerson对应的用于表征被嵌入模型与嵌入式模型关系的被嵌入模型状态特定标注可以表示为:
ModelEmbedded(typeof(SalesPerson),ParamValu=”OrderId”)。
由于SalesPerson对应的是销售人员数据表,而销售人员数据表中的每一个销售人员可以对应有多个订单,因此,不设置第三参数和第四参数。
S103、依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;
本发明实施例中,会依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作。
所述数据处理接口指令为查询接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述查询接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的被嵌入模型与嵌入式模型的关系的被嵌入模型状态特定标注;
可以理解的是,该被嵌入模型状态特定标注是由用户根据实际业务需要来定义的。
依据所述第二参数获取所述嵌入式模型属性所对应的参数值;
将所述参数值作为查询参数查询与所述嵌入式模型相关联的多个数据表。
以上述实例为例,本发明中,调用查询相关接口来自动查询被嵌入模型集合,自动查询被嵌入结合OderDetail和被嵌入模型SalesPerson。
其中,本发明中内部对Orderid检索订单的过程包括:
以客户端传入的Orderid为参数从Order模型所对应的数据表中检索数据,并将数据填充到Order模型中。
然后根据OrderDetail集合对应的标注ParamValue定义查询参数的来源,获取该查询参数并用采参数值查询OrdeDetail所对应的数据表中的数据集合。
之后将得到的数据集合添加到Order模型的属性中。
同样的,根据SalesPerson对应的标注ParamValue定义查询参数的来源,获取该查询参数,并查询其对应的数据表检索到相关数据,将检索到的相关数据添加到Order模型的属性中。
此过程先从检索嵌入模型所对应的数据表检索数据到嵌入模型,然后根据每个被嵌入模型所对应的属性上的被嵌入模型及其集合定义标注上的ParamValue所定义的参数来源从嵌入模型获取参数值,然后使用获取的参数值从被嵌入模型所对应的数据表中检索数据到被嵌入模型,完成嵌入式模型和真实数据的交互。
所述数据处理接口指令为增加接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述增加接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的自动赋值特定标注;
将增加接口指令中的参数值保存到嵌入式模型的属性中,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
所述数据处理接口指令为删除接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述删除接口指令对应的嵌入式模型;
获取所述嵌入式模型中的被嵌入模型特定标注;
根据所述第四参数删除嵌入式模型中与该第四参数对应的被嵌入模型属性。
所述数据处理接口指令为修改接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述修改接口指令对应的嵌入式模型;
获取所述嵌入式模型中的自动赋值特定标注;
依据修改接口指令中的参数值修改嵌入式模型的属性,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
S104、得到操作结果。
最终,得到操作结果。可以利用该操作结果返回给特定目标或执行其它操作。
本发明实施例公开了一种数据处理方法,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法接收数据处理接口指令;获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。由于本发明中所采用的是具有层次结构的嵌入式模型,因此,在服务端进行操作时,仅需要对该嵌入式模型进行相关操作,会自动获取与嵌入式模型对应数据表具有关联关系的其它数据表的相关数据,大大减少了操作步骤,减少了代码数量,提高了软件开发的效率。
参见图3,图3是本发明实施例提供的一种数据处理方法的另一种流程示意图。
步骤S104之后,还包括:
S105、根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
S106、当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
S107、根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
S108、依次运行多条所述数据库更新语句,对数据库进行更新。
上述实施例中,明确公开了对嵌入式模型执行增、删、查、改的详细操作,本发明实施例中,还提供数据接口将更新列表中的数据更新到数据库中。
本发明实施例中,提供了至少三种数据接口用于执行相关操作。
具体的,本发明实施例中,提供了AddEntry(ModelEntry entry),该接口用于更新嵌入模型,把entry加入到更新列表,并把该entry自动跟对应的嵌入模型关联,在上述实例中,对应的嵌入模型为Order。
AddEmbeddedEntry(stringproperty,ModelEntry entry),该接口用于更新被嵌入模型,把entry加入到更新列表,并把该entry自动跟对应的被嵌入模型关联,然后把该被嵌入模型赋值到嵌入模型中property代表的属性,在上述实例中,对应的被嵌入模型为SalesPerson。
AddEmbeddedEntries(string property,ModelEntry entry),该接口用于更新被嵌入模型,把entry集合加入到更新列表,并把该entry集合自动跟对应的被嵌入模型集合关联,然后把该被嵌入模型集合赋值到嵌入模型中property代表的属性,在上述实例中,对应的对应的被嵌入模型集合为OrderDetail。
然后根据更新列表中的待更新数据,生成相应的模型,根据模型自动生成数据库更新语句对数据进行更新。其中,根据模型自动生成数据库更新语句对数据进行更新的具体过程可以参考现有技术中根据模型生成SQL语句的相关技术,只要可以实现即可,本申请并不关心此过程,不进行赘述。
实际使用中,以上述实例为例。新增订单的保存流程可以包括如下过程:
根据Order对应ModelEntry中数据状态生成与Order对应的数据表的新增语句,并执行该新增语句,读取嵌入式模型属性中的SetValue标注,获取该标准中Source所对应的属性的值,并把该值填充到被嵌入模型或其集合的对应的属性,具体为SetValue标注Target中,判断OrderDetail对应的被嵌入模型集合定义标注是否设置了第三参数,即级联增加标志,如果设置了第三参数,则根据OrderDetail集合对应ModelEntry集合中数据状态生成与OrderDetail对应的数据表的新增语句,并执行。需要说明的是,生成新增语句的过程参考现有技术的成熟技术,本申请不进行赘述。
删除订单的保存流程可以包括如下过程:
若Order模型中设置了第四参数,即OrderDetail对应的被嵌入模型集合定义标注设置了级联删除标志,根据客户端传入的OrderId生成此OrderId关联的OrderDetail模型集合对应数据表中相关数据的删除语句,并执行该删除语句。根据客户端传入的OrderId生成此OrderId关联的Order模型对应数据表中相关数据的删除语句,并执行
修改订单的保存流程包括:
根据Order对应ModelEntry中数据状态生成与Order对应的数据表的修改语句,并执行该修改语句;根据SetValue标注中Source所对应的属性的值,并把该值填充到被嵌入模型或其集合的对应的属性,具体为SetValue标注的Target;根据OrderDetail集合对应ModelEntry集合中数据状态生成与OrderDetail对应的数据表的新增、删除或修改语句,并执行。
需要说明的是,上述生成语句并执行的过程属于现有技术,在此不进行赘述,只要可以实现即可。
可以看出,本发明实施例通过对嵌入式模型的操作实现了对数据库的更新,此过程仅对嵌入式模型进行操作即可,简化了编程流程,简化了执行步骤。
与上述一种数据处理方法相对应的,本发明还公开了一种数据处理装置,参见图4,图4是本发明公开的一种数据处理装置的结构示意图。
本发明公开的一种数据处理装置,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
接收单元1,用于接收数据处理接口指令;
获取单元2,用于获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
执行单元3,用于依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。
优选的,还包括:
添加列表单元,用于根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
更新列表单元,用于当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
语句生成单元,用于根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
数据库更新单元,用于依次运行多条所述数据库更新语句,对数据库进行更新。
优选的,所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型是否可以被增加的第三参数以及用于表征被嵌入式模型是否可以被删除的第四参数。
所述数据处理接口指令为查询接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述查询接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的被嵌入模型与嵌入式模型的关系的被嵌入模型状态;
依据所述第二参数获取所述嵌入式模型属性所对应的参数值;
将所述参数值作为查询参数查询与所述嵌入式模型相关联的多个数据表。
所述数据处理接口指令为增加接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述增加接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的自动赋值特定标注;
将增加接口指令中的参数值保存到嵌入式模型的属性中,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
所述数据处理接口指令为删除接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述删除接口指令对应的嵌入式模型;
获取所述嵌入式模型中的被嵌入模型特定标注;
根据所述第四参数删除嵌入式模型中与该第四参数对应的被嵌入模型属性。
所述数据处理接口指令为修改接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述修改接口指令对应的嵌入式模型;
获取所述嵌入式模型中的自动赋值特定标注;
依据修改接口指令中的参数值修改嵌入式模型的属性,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
需要说明的是,本实施例的一种数据装置可以采用上述方法实施例中的一种数据处理方法实现各模块的功能,实现上述方法实施例中的全部技术方案,其各个模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
本发明实施例公开了一种数据处理装置,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法接收数据处理接口指令;获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。由于本发明中所采用的是具有层次结构的嵌入式模型,因此,在服务端进行操作时,仅需要对该嵌入式模型进行相关操作,会自动获取与嵌入式模型对应数据表具有关联关系的其它数据表的相关数据,大大减少了操作步骤,减少了代码数量,提高了软件开发的效率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据处理方法,其特征在于,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
接收数据处理接口指令;
获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;
得到操作结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
依次运行多条所述数据库更新语句,对数据库进行更新。
3.根据权利要求1或2所述的方法,其特征在于,所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型可以实现级联增加的第三参数以及用于表征被嵌入式模型可以实现级联删除的第四参数。
4.根据权利要求3所述的方法,其特征在于,所述数据处理接口指令为查询接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述查询接口指令对应的嵌入式模型;
获取所述嵌入式模型中的被嵌入模型状态特定标注;
依据所述第二参数获取所述嵌入式模型属性所对应的参数值;
将所述参数值作为查询参数查询与所述嵌入式模型相关联的多个数据表。
5.根据权利要求3所述的方法,其特征在于,所述数据处理接口指令为增加接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述增加接口指令对应的嵌入式模型;
获取所述嵌入式模型中的自动赋值特定标注;
将增加接口指令中的参数值保存到嵌入式模型的属性中,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
6.根据权利要求3所述的方法,其特征在于,所述数据处理接口指令为删除接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述删除接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的被嵌入模型与嵌入式模型的关系的被嵌入模型状态特定标注;
根据所述第四参数删除嵌入式模型中与该第四参数对应的被嵌入模型属性。
7.根据权利要求3所述的方法,其特征在于,所述数据处理接口指令为修改接口指令;
则依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作具体包括:
确定与所述修改接口指令对应的嵌入式模型;
获取用户定义的所述嵌入式模型中的自动赋值特定标注;
依据修改接口指令中的参数值修改嵌入式模型的属性,并依据所述自动赋值特定标注中的赋值策略将嵌入式模型属性赋值到被嵌入模型属性。
8.一种数据处理装置,其特征在于,应用于ORM框架,所述ORM框架有依据数据表建立的嵌入式模型,所述嵌入式模型通过嵌入式模型属性以及被嵌入模型属性构成层次结构,所述被嵌入模型属性包括与该嵌入式模型对应的数据表具有相同的特定字段的至少一个其它数据表的数据;所述被嵌入模型属性中包括特定标注,所述特定标注用于实现嵌入式模型属性以及被嵌入模型属性的关联操作,所述方法包括:
接收单元,用于接收数据处理接口指令;
获取单元,用于获取与所述数据处理接口指令所对应的嵌入式模型中的特定标注;
执行单元,用于依据所述数据处理接口指令的类型和所述特定标注执行与所述数据处理接口指令的类型相匹配的操作;得到操作结果。
9.根据权利要求8所述的装置,其特征在于,还包括:
添加列表单元,用于根据调用编程接口指令,将待更新参数加入到更新列表中并将所述待更新参数与对应的嵌入式模型的属性相关联;其中,所述更新列表属于所述ORM框架的一部分,用于存放待更新数据;
更新列表单元,用于当接收到执行该更新列表的指令时,依次获取该更新列表中的待更新数据所对应嵌入式模型的属性;
语句生成单元,用于根据获取的嵌入式模型的各个属性,生成与其相对应的多条数据库更新语句;
数据库更新单元,用于依次运行多条所述数据库更新语句,对数据库进行更新。
10.根据权利要求8或9所述的装置,其特征在于,所述被嵌入式模型属性中包括自动赋值特定标注以及被嵌入模型状态特定标注;
所述自动赋值特定标注包括用于表征数据源的嵌入式模型属性、用于表征填充目标的被嵌入模型属性以及赋值策略;
所述被嵌入模型状态特定标注包括用于表征被嵌入模型的类型的第一参数、用于表征级联查询时参数来源的第二参数、用于表征被嵌入式模型可以实现级联增加的第三参数以及用于表征被嵌入式模型可以实现级联删除的第四参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810819845.1A CN108897897B (zh) | 2018-07-24 | 2018-07-24 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810819845.1A CN108897897B (zh) | 2018-07-24 | 2018-07-24 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897897A true CN108897897A (zh) | 2018-11-27 |
CN108897897B CN108897897B (zh) | 2021-01-05 |
Family
ID=64351474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810819845.1A Active CN108897897B (zh) | 2018-07-24 | 2018-07-24 | 一种数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897897B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
US20100287208A1 (en) * | 2009-05-05 | 2010-11-11 | International Business Machines Corporation | Object-Relational Based Data Access for Nested Relational and Hierarchical Databases |
CN106649457A (zh) * | 2016-09-26 | 2017-05-10 | 天津海量信息技术股份有限公司 | 基于对象关系映射技术的数据处理框架 |
CN107391529A (zh) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种实现对象关系映射orm的方法及装置 |
-
2018
- 2018-07-24 CN CN201810819845.1A patent/CN108897897B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
US20100287208A1 (en) * | 2009-05-05 | 2010-11-11 | International Business Machines Corporation | Object-Relational Based Data Access for Nested Relational and Hierarchical Databases |
CN106649457A (zh) * | 2016-09-26 | 2017-05-10 | 天津海量信息技术股份有限公司 | 基于对象关系映射技术的数据处理框架 |
CN107391529A (zh) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种实现对象关系映射orm的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108897897B (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Banciihon | Object-oriented database systems | |
US6356901B1 (en) | Method and apparatus for import, transform and export of data | |
CN106227800A (zh) | 一种高度关联大数据的存储方法及管理系统 | |
US7979456B2 (en) | Method of managing and providing parameterized queries | |
JP3910221B2 (ja) | オブジェクト指向データベース管理システム及び方法 | |
US20010016843A1 (en) | Method and apparatus for accessing data | |
US6748393B1 (en) | Transparent updates to partitioned views in a federated database system | |
CN109753537A (zh) | 一种从关系数据到图数据的交互式数据迁移方法 | |
US20080016048A1 (en) | Intelligent condition pruning for size minimization of dynamic, just in time tables | |
AU2012327168B2 (en) | Amethod and structure for managing multiple electronic forms and their records using a static database | |
CN107977446A (zh) | 一种基于数据分区的内存网格数据加载方法 | |
KR100529661B1 (ko) | 오브젝트 통합 관리 시스템 | |
US20110153562A1 (en) | Error prevention for data replication | |
US7409410B2 (en) | System and method of presenting multilingual metadata | |
CN104392123B (zh) | 一种cda引擎系统及实现方法 | |
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN107025279A (zh) | 基于数据库接口层操作流的scd文件在线并行配置系统和方法 | |
US20060074934A1 (en) | Utilization of display profiles with abstract queries | |
CN112487075B (zh) | 一种集成关系型和非关系型数据库数据转换算子的方法 | |
CN108897897A (zh) | 一种数据处理方法和装置 | |
CN110209699A (zh) | 一种基于openEHR Composition模板的数据接口动态生成与执行方法 | |
Bugiotti et al. | A logical approach to nosql databases | |
Zhu et al. | Developing a dynamic materialized view index for efficiently discovering usable views for progressive queries | |
Doucet et al. | Integrity constraints in multiversion databases | |
CN110717263A (zh) | 一种作战模型管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |