CN102426582B - 数据操作管理装置和数据操作管理方法 - Google Patents

数据操作管理装置和数据操作管理方法 Download PDF

Info

Publication number
CN102426582B
CN102426582B CN201110294339.3A CN201110294339A CN102426582B CN 102426582 B CN102426582 B CN 102426582B CN 201110294339 A CN201110294339 A CN 201110294339A CN 102426582 B CN102426582 B CN 102426582B
Authority
CN
China
Prior art keywords
business
database
mapping relations
objects
database table
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.)
Active
Application number
CN201110294339.3A
Other languages
English (en)
Other versions
CN102426582A (zh
Inventor
颜刊
梁喜涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yonyou Software Co Ltd
Original Assignee
Yonyou Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yonyou Software Co Ltd filed Critical Yonyou Software Co Ltd
Priority to CN201110294339.3A priority Critical patent/CN102426582B/zh
Publication of CN102426582A publication Critical patent/CN102426582A/zh
Application granted granted Critical
Publication of CN102426582B publication Critical patent/CN102426582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据操作管理装置和一种数据操作管理方法,其中,数据操作管理装置包括:映射关系管理模块,获取业务对象与数据库中业务对象对应的数据库表之间的映射关系;业务操作片段管理模块,设置业务操作片段,业务操作片段包括一个或多个业务操作;对象变更管理模块,在业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;数据库表处理模块,在业务操作片段中的所有业务操作都完成时,根据业务操作片段中的所有业务对象的操作状态以及映射关系,对数据库中所有业务对象对应的所有数据库表进行处理。通过本发明,可集中记录业务对象的操作状态,执行一次数据库连接后,即可完成对业务对象所对应的数据表的操作。

Description

数据操作管理装置和数据操作管理方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据操作管理装置和一种数据操作管理方法。
背景技术
在软件信息系统特别是ERP系统中,数据都是存储在数据库中。早期的软件开发都是直接编写SQL实现对数据库的操作,后期发展为面向对象的编程,所有对数据的操作都是先操作对象,然后再根据对象进行数据库操作,这样就出现了根据对象生成SQL的技术。
现有技术,一种情况,SQL语句的生成方法是由具有一定撰写经验的开发人员根据数据库实体,使用代码构建数据库内各表的关系,进行SQL语句的编写。这种人工编写SQL语句的方法,对开发人员要求比较高,而且效率过低,不适于规模开发。
另一种情况,将数据库实体表信息记录在数据字典,作为SQL语句生成的基础,根据SQL生成规则,生成SQL语句。这样的确可以方便的生成SQL语句,但是一个对象操作对应一条SQL语句。
在实际软件开发中,最终完成的是具体的某个业务,而完成一个业务则可能需要操作多个对象,这些对象又可能是不同类型的对象。而基于现有技术,每个对象操作最终都会生成并执行一个SQL,一个业务操作可能需要生成上万条SQL语句,还可能需要多次的数据库连接,这样无疑增加数据库负担,既浪费宝贵的数据库资源,也影响程序的执行效率,出现超时,甚至可能造成系统崩溃。
因此,需要一种新的技术方案,能够快速高效地对数据库进行操作,节省用户的时间,且不需要用户进行复杂的脚本编写,同时也不会对数据库增加负担。
发明内容
本发明所要解决的技术问题在于,提供一种新的技术方案,能够快速高效地对数据库进行操作,节省用户的时间,且不需要用户进行复杂的脚本编写,同时也不会对数据库增加负担。
有鉴于此,本发明提供一种数据操作管理装置,包括:映射关系管理模块,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;业务操作片段管理模块,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;对象变更管理模块,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;数据库表处理模块,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,可集中记录业务对象的操作状态,自动生成数据库查询语句,并实现执行数据库查询语句的操作后延,使得在执行一次数据库连接后,即可完成对业务对象所对应的数据表的操作,同时可以从业务层面管理数据库表的操作,符合具体业务的需求。
在上述技术方案中,优选地,所述业务对象与所述数据库表之间的映射关系包括:所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。通过该技术方案,保证通过映射关系可以找到业务对象对应的数据库表,映射关系还可以进一步扩展,添加一些如描述信息等类型的内容。
在上述技术方案中,优选地,所述对象变更管理模块还按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;所述数据库表处理模块根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,将对多个业务对象的对应的数据库表操作,集中到尽可能少的数据库语句来完成,能够大幅提升数据库表操作的效率。
在上述技术方案中,优选地,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述数据库表处理模块根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,对于增加到同一组中的所有对象,按上限长度生成插入语句,对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,将生成的所有语句提交到所述数据库中执行。通过该技术方案,详细说明了如何生成数据库查询语句,本领域技术人员应当理解,还可以通过其他方式生成语句,并不限于上述几种。
在上述技术方案中,优选地,还包括:数据共享模块,在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。通过该技术方案,保证了用户查询的内容与数据变化情况一致,保证查询内容的准确性。
本发明还提供一种数据操作管理方法,包括:步骤202,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;步骤204,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;步骤206,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;步骤208,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,可集中记录业务对象的操作状态,自动生成数据库查询语句,并实现执行数据库查询语句的操作后延,使得在执行一次数据库连接后,即可完成对业务对象所对应的数据表的操作,同时可以从业务层面管理数据库表的操作,符合具体业务的需求。
在上述技术方案中,优选地,所述业务对象与所述数据库表之间的映射关系包括:所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。通过该技术方案,保证通过映射关系可以找到业务对象对应的数据库表,映射关系还可以进一步扩展,添加一些如描述信息等类型的内容。
在上述技术方案中,优选地,按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;所述步骤208具体包括:根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,将对多个业务对象的对应的数据库表操作,集中到尽可能少的数据库语句来完成,能够大幅提升数据库表操作的效率。
在上述技术方案中,优选地,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述步骤208具体包括:根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,对于增加到同一组中的所有对象,按上限长度生成插入语句,对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,将生成的所有语句提交到所述数据库中执行。通过该技术方案,详细说明了如何生成数据库查询语句,本领域技术人员应当理解,还可以通过其他方式生成语句,并不限于上述几种。
在上述技术方案中,优选地,还包括:在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。通过该技术方案,保证了用户查询的内容与数据变化情况一致,保证查询内容的准确性。
通过以上技术方案,可以实现一种数据库操作管理装置和一种数据库操作管理方法,能以一种智能的方式根据对象生成SQL,从而实现尽可能减少数据库连接及执行SQL的数量,达到优化系统、提高效率的成果。
附图说明
图1是根据本发明的一个实施例的数据库操作管理装置的框图;
图2是根据本发明的一个实施例的数据库操作管理方法的流程图;
图3是现有数据库表操作的技术方案的原理示意图;
图4是根据本发明的一个实施例的数据库操作管理装置的原理示意图;
图5是根据本发明的一个实施例的数据库操作管理装置的工作示意图;
图6是数据对象的模型示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的数据库操作管理装置的框图。
如图1所示,本发明提供一种数据操作管理装置100,包括:映射关系管理模块102,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;业务操作片段管理模块104,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;对象变更管理模块106,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;数据库表处理模块108,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,可集中记录业务对象的操作状态,自动生成数据库查询语句,并实现执行数据库查询语句的操作后延,使得在执行一次数据库连接后,即可完成对业务对象所对应数据表的操作,同时可以从业务层面管理数据库表的操作,符合具体业务的需求。
在上述技术方案中,所述业务对象与所述数据库表之间的映射关系包括:所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。通过该技术方案,保证通过映射关系可以找到业务对象对应的数据库表,映射关系还可以进一步扩展,添加一些如描述信息等类型的内容。
在上述技术方案中,优选地,所述对象变更管理模块106还按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;所述数据库表处理模块108根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,将对多个业务对象的对应的数据库表操作,集中到尽可能少的数据库语句来完成,能够大幅提升数据库表操作的效率。
在上述技术方案中,优选地,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述数据库表处理模块108根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,对于增加到同一组中的所有对象,按上限长度生成插入语句,对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,将生成的所有语句提交到所述数据库中执行。通过该技术方案,详细说明了如何生成数据库查询语句,本领域技术人员应当理解,还可以通过其他方式生成语句,并不限于上述几种。
在上述技术方案中,还包括:数据共享模块110,在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。通过该技术方案,保证了用户查询的内容与数据变化情况一致,保证查询内容的准确性。
图2是根据本发明的一个实施例的数据库操作管理方法的流程图。
如图2所示,本发明还提供一种数据操作管理方法,包括:步骤202,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;步骤204,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;步骤206,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;步骤208,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,可集中记录业务对象的操作状态,自动生成数据库查询语句,并实现执行数据库查询语句的操作后延,使得在执行一次数据库连接后,即可完成对业务对象所对应的数据表的操作,同时可以从业务层面管理数据库表的操作,符合具体业务的需求。
在上述技术方案中,所述业务对象与所述数据库表之间的映射关系包括:所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。通过该技术方案,保证通过映射关系可以找到业务对象对应的数据库表,映射关系还可以进一步扩展,添加一些如描述信息等类型的内容。
在上述技术方案中,优选地,按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;所述步骤208具体包括:根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。通过该技术方案,将对多个业务对象的对应的数据库表操作,集中到尽可能少的数据库语句来完成,能够大幅提升数据库表操作的效率。
在上述技术方案中,优选地,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述步骤208具体包括:根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,对于增加到同一组中的所有对象,按上限长度生成插入语句,对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,将生成的所有语句提交到所述数据库中执行。通过该技术方案,详细说明了如何生成数据库查询语句,本领域技术人员应当理解,还可以通过其他方式生成语句,并不限于上述几种。
在上述技术方案中,还包括:在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。通过该技术方案,保证了用户查询的内容与数据变化情况一致,保证查询内容的准确性。
以下对本发明技术方案的原理进行解释。
现有技术中,一种情况,SQL语句的生成方法是由具有一定撰写经验的开发人员根据数据库实体,使用代码构建数据库内各表的关系,进行SQL语句的编写。这种人工编写SQL语句的方法,对开发人员要求比较高,效率低,不适于规模开发。
另一种情况,将数据库实体表信息记录在数据字典,作为SQL语句生成的基础,根据SQL生成规则,生成SQL语句。
现有技术有一共同特点:一个对象就生成一条SQL语句,然后连接数据库执行。如果是处理多个对象,现有方法很有局限性。具体原理如图3所示。
为了优化现有技术,本发明的实施例中,公开了一套如何根据对象智能生成SQL的机制,以及如何保证以智能方式生成SQL的原理。具体实现原理如图4所示:通过变更集管理器402(对应前述的对象变更管理模块)来集中生成SQL,然后连接到数据库进行处理,能够大幅提升数据库表的操作效率。
以下根据图5来说明本发明实施例的具体内容。
一、提供元数据管理器502(对应前述的映射关系管理模块)来管理对象和数据库之间的映射。
要实现对象自动生成SQL来进行增删查改操作,必须先建立对象(属性)和数据库表(字段)之间的映射关系、对象之间关系和数据库表间关系的映射,这两种映射关系都通过元数据来实现。
由此可以保证任何一个对象(属性)只要需要最终存储在数据库中,就可以通过元数据找到对应的表(字段)。任何一个被操作的对象,都可以通过元数据找到需要操作的相关对象,进而也就找到了需要操作的数据表。
关于如何通过元数据管理这些映射,下文以表格的方式从对象、属性、对象间关系三方面详细描述如何具体定义元数据。具体参见以下各表:表1,对象与表之间映射:
表2,属性与字段之间映射:
表3,对象间关系映射:
对象关系 数据库表关系
主对象 主表
子对象 子表表
子对象中关联属性 子表外键
主子关系(1对1、1对多) 主子关系(1对1、1对多)
二、提供一个业务操作片段管理器504(对应前述的业务操作片段管理模块)来管理对象的操作。
在传统的面向对象开发方式下,当一个对象操作完成后,会自动的生成一条SQL语句。新建对象则创建一个Insert脚本,删除对象则创建一个Delete脚本,修改对象则生成一个Update脚本。然后连接到数据库执行,此时会进行一次数据库交互。
在本实施例中,特殊的提供了一个业务操作片段管理器504,英文名称为Session,此管理器504对业务操作片段按如下规则定义:
1)原子级:
所谓原子级包括两个概念。一方面指一个片段必须能完成一个业务操作;另一方面指一个片段中所涉及的对象是要么都完成、要么都取消的。
2)数据共享性:
所谓数据共享性,是因为当对象进行了操作,但又不立即提交到数据库,所以在一个代码片段内,会存在对象数据和数据库的数据不一致的情况。而业务操作片段管理器提供了一个共享的数据查询功能,保证在一个业务操作片段内,从数据库查询的数据会和当前业务操作片段中的数据进行组合后再返回。由此,保证了对开发人员来说的对象和数据库的一致性。
3)操作与SQL无关性:
传统方式下,对象总是会对应产生SQL并执行的。但在业务操作片段中,操作对象与SQL没有任何关联,只是这些对象会被记录下来。
4)可嵌套、可组合:
如果一个业务过于复杂,可以拆分为多个业务操作片段。一个业务操作片段中也可以嵌套另一个业务操作片段。
三、提供一个变更集管理器402来管理所有变化的对象。
在本实施例中,提供了变更集管理器402。每一个业务操作片段管理器504对应于一个变更集管理器402,变更集管理器402用于记录中所操作的业务对象,在内部记录下对象的操作状态(新增、修改、删除、无变化),并且根据这些对象进行了关联对象的处理。
主要提供如下功能:
加入变化的对象(删除、修改、新增的对象);
按状态(根据新增、修改、删除)分组;
加入变化的对象(删除、修改、新增的对象);
按状态(根据新增、修改、删除)分组;
按对象类别分组;
按主子关系分组;
自动根据对象状态,查找并维护相关对象的状态。
四、提交到数据库。
当一个业务操作片段所需要操作的所有对象都完成后,由业务操作片段管理器提供一个统一提交功能(如果有错误,则自动回滚)。由此,本专利在此自动提交功能中会分析本业务操作片段的变更集中的所有对象,并模拟人工智能的方式生成SQL脚本,连接数据库并执行。
当生成SQL时,变更集中的对象按变更集的功能先进行内部处理和分组,然后自动分析当前数据库特性,确认生成SQL策略,具体生成SQL规则如下:
对删除的主对象,如果一个类别(组)存在多个对象,则只生成一条Delete语句;
当删除子对象时,均只生成一条以主对象ID为条件的Delete语句;
当新增对象时,如果一个类别(组)存在多个对象,当SQL策略支持一次插入多条记录时,优先生成一条Insert语句;
当新增对象时,如果一个类别(组)存在多个对象,会自动检测是否一条Insert语句为超长,如果超长,则以SQL策略能支持的最大长度为限,生成一条或多条Insert语句,保证能处理无限多的对象;
当更新对象时,如果一个类别(组)存在多个对象,自动检测修改内容是否相同,如果相同则只生成一条Update语句。
通过上述处理,可以保证基于数据库,可以提供最高效的SQL,从而保证以最少的连接次数、最高效的SQL来完成对数据库的操作。
以系统开发中,最常用的主子孙对象模型为例,来说明本实施例的技术方案。这个模型很典型,很常用,能够覆盖众多复杂应用模型。具体示例如图6所示。
图6为一个主、子、孙三层关系的对象模型,对象A与对象B、对象C构成主子孙关系,其中各表的主键为ID,B中存储A外键A_ID,C中存储B的外键B_ID以及A的外键A_ID。对象A对应表为:TableA,对象B对应表为:TableB,对象C对应表为:TableC。
对象与数据表对照情况,具体如下表中的数据表信息:
对象 数据表名 主键 外键
A TableA ID
B TableB ID A_ID
C TableC ID A_ID,B_ID
假设每个对象A有1000子对象B,而每个B也有1000个子对象C,则每个对象A就有1000×1000,即一百万个孙对象C。
现在用户准备删除一条数据A,选中一条A,点击删除。默认规则,其子孙对象也要相应的删除。如果删除一条A,例如A1,则需要删除一千个子对象B,同时需要删除一百万个孙对象C。根据上述假设,分别按照现有方法和本实施例的技术方案,计算最后生成的SQL语句数量。
按照现有技术,一个对象生成一条SQL语句。
删除A,需要生成一条SQL语句:
DeletefromTableAwhereID=A1.ID
删除B,则需要生成一千条SQL语句:
DeletefromTableBwhereID=B1.ID
DeletefromTableBwhereID=B2.ID
DeletefromTableBwhereID=B1000.ID
删除C,则需要生成一百万条SQL语句:
DeletefromTableCwhereID=C1.ID
DeletefromTableCwhereID=C2.ID
DeletefromTableCwhereID=C1000000.ID
如此大量的SQL语句,无疑对数据库造成很大负担,如果再加上建立数据库连接等操作,此删除操作很可能超时,甚至造成系统崩溃。
而本实施例中,根据业务,认真处理各个对象之间的关联,并在SQL生成时按一定规则进行优化,如按相同对象分组,相同操作分组等智能分析,最后得到精简、高效的SQL语句。最终生成SQL情况如下:
删除A,只需一条优化的SQL语句:
DeletefromTableAwhereID=A1.ID
删除B,也只需一条SQL语句,因为有关联外键,便可根据业务规则、实体间关系,直接处理某外键相关的所有数据即可。
DeletefromTableBwhereA_ID=A1.ID
删除C,也只需一条SQL语句:
DeletefromTableCwhereA_ID=A1.ID
具体对比情况可见下表:
最后的统计对照表如下表所示:
根据最后的统计对照表,可以清晰看到,本发明在生成SQL语句时进行了很好的优化。将百万条SQL语句,精简至1条。其优势可见一斑。在实际的业务处理中,有的对象模型只有父子两级,但是还有更复杂的模型,孙对象依然有子孙,此时本发明的优势将会更加明显。
在业务操作中,为了方便操作,经常会涉及批量操作。就拿上述例子中,如果批量删除1000条A,按现有技术处理,需要级联处理的子孙将十分庞大,而本发明生成的SQL语句依然还是一条。
综上所述,通过以上技术方案与现有技术相比,本实施例的技术方案具有如下优点:
首先,引入业务操作片段管理器,在面向对象的基础上,将系统开发提升到了面向业务的层次,更符合当前软件开发潮流。
其次,引入了变更集管理器的概念,在进行业务开发时,只需要操作业务对象即可,系统将自动生成、执行SQL的操作后延。
再次,提出了智能SQL的方式,在一个业务操作片段完成后,会动态的分析业务操作片段的变更集中的相关对象,再结合数据库特性,生成一组SQL,保证在特定数据库下的SQL效率最高。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据操作管理装置,其特征在于,包括:
映射关系管理模块,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;
业务操作片段管理模块,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;
对象变更管理模块,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;
数据库表处理模块,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理;以及
所述对象变更管理模块还按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;
所述数据库表处理模块根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。
2.根据权利要求1所述的数据操作管理装置,其特征在于,所述业务对象与所述数据库表之间的映射关系包括:
所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。
3.根据权利要求1所述的数据操作管理装置,其特征在于,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述数据库表处理模块根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,对于增加到同一组中的所有对象,按上限长度生成插入语句,对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,将生成的所有语句提交到所述数据库中执行。
4.根据权利要求1至3中任一项所述的数据操作管理装置,其特征在于,还包括:
数据共享模块,在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。
5.一种数据操作管理方法,其特征在于,包括:
步骤202,获取业务对象与数据库中所述业务对象对应的数据库表之间的映射关系;
步骤204,设置业务操作片段,其中,所述业务操作片段包括一个或多个业务操作;
步骤206,在所述业务操作片段中的任一业务对象进行业务操作时,记录被操作的业务对象的操作状态;
步骤208,在所述业务操作片段中的所有业务操作都完成时,根据所述业务操作片段中的所有业务对象的操作状态以及所述映射关系,对所述数据库中所述所有业务对象对应的所有数据库表进行处理;以及
所述步骤206还包括:
按所述所有业务对象之间的关联关系,对所述所有业务对象进行分组;
所述步骤208具体包括:
根据所述映射关系,为每组业务对象生成对应的数据库查询语句,并提交到所述数据库中执行,以对所述数据库中所述所有业务对象对应的所有数据库表进行处理。
6.根据权利要求5所述的数据操作管理方法,其特征在于,所述业务对象与所述数据库表之间的映射关系包括:
所述业务对象自身与所述数据库表自身的映射关系,所述业务对象的属性与所述数据库表的字段之间的映射关系,所述业务对象的对象关系与所述数据库表的数据库表关系之间的映射关系。
7.根据权利要求5所述的数据操作管理方法,其特征在于,所述所有业务对象之间的关联关系包括所述所有业务对象的操作状态、类型和/或对象关系,所述步骤208具体包括:
根据所述映射关系,对于同一组中作为主对象被删除的所有对象,按照被删除对象的标识及所述映射关系,生成一条删除语句,
对于同一组中作为子对象被删除的所有对象,按照被删除对象的主对象的标识,生成一条删除语句,
对于增加到同一组中的所有对象,按上限长度生成插入语句,
对于同一组中被更新的所有对象,检测被更新对象的更新内容是否均相同,并在所述更新内容均相同时,生成一条更新语句,
将生成的所有语句提交到所述数据库中执行。
8.根据权利要求5至7中任一项所述的数据操作管理方法,其特征在于,还包括:
在对所述数据库中的数据库表的数据进行查询时,根据所述被查询数据库表对应的业务对象的内容,返回查询结果。
CN201110294339.3A 2011-09-29 2011-09-29 数据操作管理装置和数据操作管理方法 Active CN102426582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110294339.3A CN102426582B (zh) 2011-09-29 2011-09-29 数据操作管理装置和数据操作管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110294339.3A CN102426582B (zh) 2011-09-29 2011-09-29 数据操作管理装置和数据操作管理方法

Publications (2)

Publication Number Publication Date
CN102426582A CN102426582A (zh) 2012-04-25
CN102426582B true CN102426582B (zh) 2016-03-30

Family

ID=45960563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110294339.3A Active CN102426582B (zh) 2011-09-29 2011-09-29 数据操作管理装置和数据操作管理方法

Country Status (1)

Country Link
CN (1) CN102426582B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853825B (zh) * 2014-03-04 2017-07-11 北京神舟航天软件技术有限公司 基于cad文档关系的可扩展配置方法
CN103955492A (zh) * 2014-04-17 2014-07-30 国网宁夏电力公司 一种电力系统中数据存储的方法
CN104699811B (zh) * 2015-03-23 2018-02-23 重庆广播电视大学 一种无侵入式表单数据变化记录和回溯的方法及装置
CN104834860B (zh) * 2015-05-09 2018-01-12 福建六壬网安股份有限公司 一种安全事件动态入库方法
CN106445933B (zh) * 2015-08-04 2019-11-12 阿里巴巴集团控股有限公司 一种数据处理方法和系统
CN105808787B (zh) * 2016-04-01 2019-10-11 广州品唯软件有限公司 一种数据处理方法和电子设备
CN108205729A (zh) * 2016-12-20 2018-06-26 天津标蓝科技有限公司 一种epr企业管理系统
CN110019306B (zh) * 2017-12-27 2021-08-31 航天信息股份有限公司 一种基于xml格式文件的sql语句查找方法及系统
CN108304505B (zh) * 2018-01-18 2020-09-11 上海达梦数据库有限公司 一种sql语句的处理方法、装置、服务器及存储介质
CN109299125B (zh) * 2018-10-31 2021-05-28 中国银行股份有限公司 数据库更新方法及装置
CN111241065B (zh) * 2020-01-13 2024-01-30 大汉软件股份有限公司 一种支持国产数据库的数据库适配开发与操作方法
CN112486991B (zh) * 2020-11-26 2024-03-01 北京字跳网络技术有限公司 数据库报表处理方法、装置和电子设备
CN113239014A (zh) * 2021-05-18 2021-08-10 安翰科技(武汉)股份有限公司 维护用sql记录的管理装置及应用系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及系统
CN101739453A (zh) * 2009-12-17 2010-06-16 中国电力科学研究院 一种对数据库表进行条件查询的方法及装置
CN102156740A (zh) * 2011-04-15 2011-08-17 国都兴业信息审计系统技术(北京)有限公司 Sql语句的处理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及系统
CN101739453A (zh) * 2009-12-17 2010-06-16 中国电力科学研究院 一种对数据库表进行条件查询的方法及装置
CN102156740A (zh) * 2011-04-15 2011-08-17 国都兴业信息审计系统技术(北京)有限公司 Sql语句的处理方法及系统

Also Published As

Publication number Publication date
CN102426582A (zh) 2012-04-25

Similar Documents

Publication Publication Date Title
CN102426582B (zh) 数据操作管理装置和数据操作管理方法
US11003645B1 (en) Column lineage for resource dependency system and graphical user interface
CN107533453B (zh) 用于生成数据可视化应用的系统和方法
US7624114B2 (en) Automatically generating web forms from database schema
TWI412945B (zh) 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統
CN101271475B (zh) 一种商业智能系统
EP2784700A2 (en) Integration of transactional and analytical capabilities of a database management system
CN102254029B (zh) 一种基于视图的数据访问系统及其方法
CN102541867A (zh) 数据字典生成方法及系统
US9805112B2 (en) Method and structure for managing multiple electronic forms and their records using a static database
JP2006172446A (ja) 複合データアクセス
CN101776999A (zh) 软件系统开发实施平台
US8413109B2 (en) Systems and methods for metamodel transformation
CN112764743B (zh) 一种基于数据模型驱动自动生成软件的方法
CN114090653A (zh) 一种资源数据统计方法、装置、元平台设备及存储介质
CN105518669A (zh) 数据模型改变管理
EP2157535A1 (en) Fast search views over business objects
Zou et al. From a stream of relational queries to distributed stream processing
JP2007133624A (ja) 連結関係情報を用いた情報管理方法及び装置
US11514236B1 (en) Indexing in a spreadsheet based data store using hybrid datatypes
CN113761040A (zh) 数据库与应用程序双向映射方法、设备、介质及程序产品
CN105518672A (zh) 跨多个模型的数据检索
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置
US11500839B1 (en) Multi-table indexing in a spreadsheet based data store

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant