CN118193551A - 更新数据库表和查询业务数据的方法、装置、设备及介质 - Google Patents
更新数据库表和查询业务数据的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN118193551A CN118193551A CN202410262050.0A CN202410262050A CN118193551A CN 118193551 A CN118193551 A CN 118193551A CN 202410262050 A CN202410262050 A CN 202410262050A CN 118193551 A CN118193551 A CN 118193551A
- Authority
- CN
- China
- Prior art keywords
- service data
- field
- database table
- target
- entity metadata
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000004321 preservation Methods 0.000 claims abstract description 3
- 230000015654 memory Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 18
- 230000014509 gene expression Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 210000001072 colon Anatomy 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术领域,公开了更新数据库表和查询业务数据的方法、装置、设备及介质,本发明包括:接收保存请求;从保存请求中提取第一实体元数据名称和目标表单;根据第一实体元数据名称,确定是否存在第一数据库表;当确定存在第一数据库表时,根据目标表单,对第一数据库表进行更新;当确定不存在第一数据库表时,根据目标表单,创建第二数据库表。根据目标业务数据标识,确定第一数据库表中是否存在第一业务数据;当确定存在第一业务数据时,根据至少一条业务数据中与目标业务数据标识对应的第二业务数据,对第一业务数据进行更新;当确定不存在与第一业务数据时,将第二业务数据的标识和第二业务数据添加到第一数据库表中。
Description
技术领域
本发明涉及数据库技术领域,具体涉及更新数据库表和查询业务数据的方法、装置、计算机设备及存储介质。
背景技术
近年来,Web程序的开发工作的技术门槛较高,通常开发Web程序需要兼顾客户端、服务端和数据库三部分的代码。
在相关技术中,在每次新建数据库表,或者,修改数据库表的数据结构时,都需要技术人员编写数据库表相关的新代码。例如,在数据库表中新增一个字段时,技术人员需要开发与该字段相关的新代码,以便在后续可以执行与该字段相关的数据处理操作。
这样,导致数据库相关代码的开发效率较低。
发明内容
有鉴于此,本发明提供了一种更新数据库表和查询业务数据的,以解决数据库相关代码的开发效率较低的问题。
第一方面,本发明提供了一种更新数据库表的方法,所述方法应用于数据库管理系统,所述方法包括:
接收保存请求;
从所述保存请求中提取第一实体元数据名称和目标表单,其中,所述目标表单为根据用户预输入的字段配置信息集合和选择的页面模板生成的;
根据所述第一实体元数据名称,确定是否存在第一数据库表;
当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新;
或者,
当确定不存在所述第一数据库表时,根据所述目标表单,创建第二数据库表。
本发明提供的一种更新数据库表的方法,具有如下优点:
第一,开发人员可以自定义字段配置信息集合,并且根据选择的页面模板动态生成目标表单,从而可以适应不同业务场景和数据结构需求,提高了数据库管理系统的灵活性。
第二,当检测到不存在与第一实体元数据名称对应的第一数据库表时,能够根据目标表单自动创建第二数据库表,无需手动编写SQL脚本或开发人员开发通过编写代码更新数据库表的数据结构,大大简化了数据库管理任务,增强了数据库管理系统的可扩展性。
第三,通过实体元数据名称映射到数据库表的方式,确保了数据存储的一致性和准确性,避免了因人为操作导致的数据冗余或遗漏。
第四,这种灵活的数据保存机制开发人员无需在每次添加新功能时都去考虑底层数据库表的创建和修改,从而提升了开发效率。
在一种可选的实施方式中,所述根据所述第一实体元数据名称,确定是否存在第一数据库表,包括:
根据所述第一实体元数据名称,确定与所述第一实体元数据名称对应的第一实体元数据;
从所述第一实体元数据中提取第一数据库表名;
根据所述第一数据库表名,确定是否存在与所述第一数据库表名对应的所述第一数据库表。
具体地,通过实体元数据名称来定位和操作数据库表,实现了业务逻辑层与数据存储层的解耦。这样,开发人员可以独立设计和管理实体元数据,而不必直接处理复杂的数据库细节,即可以提高数据库相关代码的开发效率。
在一种可选的实施方式中,所述当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新,包括:
对所述目标表单进行解析,得到第一字段集合,以及与所述第一字段集合中的每一个字段对应的字段配置信息;
将所述第一字段集合中的预设类型的字段进行剔除,得到第二字段集合;
根据所述第二字段集合,以及与所述第二字段集合中每一个字段对应的字段配置信息,对所述第一数据库表的数据结构进行更新。
具体地,由于数据库表中的部分字段不适用修改操作,因此,可以对这部分字段进行筛选,既可以提高更新数据库表的效率,又可以避免数据库表中的预设类型的字段被破坏。
在一种可选的实施方式中,所述根据所述第二字段集合,以及与所述第二字段集合中每一个字段对应的字段配置信息,对所述第一数据库表的数据结构进行更新,包括:
对所述第二字段集合进行遍历;
每遍历到一个字段,确定所述第一数据库表中是否存在与遍历到的字段匹配的第一字段;
当确定不存在所述第一字段时,将所述遍历到的字段,以及与所述遍历到的字段对应的字段配置信息添加到所述第一数据库表中;
或者,
当确定存在所述第一字段时,确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息是否匹配;
或者,
当确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息不匹配时,根据与所述遍历到的字段对应的字段配置信息,对所述第一字段的字段配置信息进行更新;
当确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息匹配时,遍历所述第二字段集合中的下一个字段;
在遍历完所述第二字段集合中的所有字段后,得到更新数据结构后的数据库表。
具体地,通过遍历字段和匹配字段配置信息,可以准确地确定出是进行新增字段操作,还是更新字段操作,又或者是无需进行任何操作,即可以保证数据库表的数据结构是正确的状态。
在一种可选的实施方式中,当所述目标表单中还包括至少一条业务数据,以及与每一条业务数据对应的业务数据标识时,所述当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新,包括:
根据目标业务数据标识,确定所述第一数据库表中是否存在与所述目标业务数据标识对应的第一业务数据,其中,所述目标业务数据标识为与至少一条业务数据中任一业务数据对应的业务数据标识;
当确定存在所述第一业务数据时,根据至少一条业务数据中与所述目标业务数据标识对应的第二业务数据,对所述第一业务数据进行更新;
或者,
当确定不存在与所述第一业务数据时,将所述第二业务数据的标识和所述第二业务数据添加到所述第一数据库表中。
具体地,根据业务数据标识,可以准确地确定出数据库表中是否有相应的业务数据,从而实现对数据库表的准确更新。
在一种可选的实施方式中,当所述第二业务数据包括关联实体元数据字段时,所述方法还包括:
从所述第二业务数据的关联实体元数据字段提取第二实体元数据名称,以及至少一条关联业务数据;
根据所述第二实体元数据名称,确定与所述第二实体元数据名称对应的第三数据库表;
将每一条关联业务数据添加到所述第三数据库表中;
将所述目标业务数据标识添加到所述第三数据库表中与每一条关联业务数据对应的关联表字段。
具体地,通过设置关联实体元数据字段,可以实现两个数据库表之间的关联关系,从而可以适应各种类型的业务需求。例如,通过关联实体元数据字段和关联表字段实现一对多或多对多关系,相较于在单个表中嵌套存储大量关联信息,可以提高存储空间利用率和查询性能。
第二方面,本发明提供了一种查询业务数据的方法,所述方法应用于如第一方面所述的数据库管理系统,所述方法包括:
接收查询请求;
对所述查询请求进行解析,得到实体元数据名称和查询条件;
根据所述实体元数据名称,确定与所述实体元数据名称对应的目标数据库表;
根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据。
本发明提供的一种查询业务数据的方法,具有如下优点:
第一,将查询请求解析为实体元数据名称和查询条件,可以实现对数据库操作的模块化处理。各个步骤相互独立,当需求变化时,只需要修改或扩展对应的模块,而不会影响到整体系统的其他部分。
第二,通过实体元数据名称动态确定目标数据库表,使得数据库管理系统具有很高的灵活性,能够应对不同的业务场景和数据模型,无需为每个表编写特定的查询代码,即可以提高数据库相关代码的开发效率。
第三,根据查询条件直接在目标数据库表中进行检索,可以减少对数据库中所有表进行扫描,可以提高数据查询效率。
在一种可选的实施方式中,所述查询条件包括至少一个业务数据标识;所述根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据,包括:
根据每一个业务数据标识,从所述目标数据库表中获取与每一个业务数据标识对应的业务数据。
具体地,先根据实体元数据名称确定数据库表,然后又利用唯一业务数据标识进行精确查找,能够快速定位到业务数据,提高了数据检索效率。
在一种可选的实施方式中,当所述数据库表包括关联实体元数据字段时,所述方法还包括:
根据所述实体元数据名称,确定与所述实体元数据名称对应的目标实体元数据;
根据所述目标实体元数据,获取与所述目标实体元数据对应的关联实体元数据;
对所述关联实体元数据进行解析,得到关联数据库表名;
根据所述关联数据库表名,确定与所述关联数据库表名对应的目标关联数据库表;
根据目标业务数据标识,在所述目标关联数据库表中确定与所述目标业务数据标识对应的至少一条关联业务数据,其中,所述目标业务数据标识为至少一个业务数据标识中的任一业务数据标识;
将目标业务数据,以及与所述目标业务数据标识对应的至少一条关联业务数据进行拼接,得到拼接后的业务数据,其中,所述目标业务数据为至少一条业务数据中与所述目标业务数据标识对应的业务数据。
具体地,通过关联实体元数据获取关联业务数据,确保了业务数据的完整性,使得展示或处理的业务数据更为全面。
在一种可选的实施方式中,所述方法还包括:
从所述数据库表中获取与所述目标业务数据中每一个字段对应的字段配置信息;
根据与所述目标业务数据中每一个字段对应的字段配置信息,对所述目标业务数据中每一个字段对应的字段值进行转换,得到转换字段值后的目标业务数据。
具体地,通过字段配置信息进行字段值转换,可以在数据进入数据库之前就进行有效的验证和处理,避免不符合规范的数据造成数据库异常的问题。
第三方面,本发明提供了一种更新数据库表的装置,所述装置应用于数据库管理系统,所述装置包括:
接收模块,用于接收保存请求;
提取模块,用于从所述保存请求中提取第一实体元数据名称和目标表单,其中,所述目标表单为根据用户预输入的字段配置信息集合和选择的页面模板生成的;
确定模块,用于根据所述第一实体元数据名称,确定是否存在第一数据库表;
更新模块,用于当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新;
或者,
创建模块,用于当确定不存在所述第一数据库表时,根据所述目标表单,创建第二数据库表。
第四方面,本发明提供了一种查询业务数据的装置,所述装置应用于数据库管理系统,所述装置包括:
接收模块,用于接收查询请求;
解析模块,用于对所述查询请求进行解析,得到实体元数据名称和查询条件;
确定模块,用于根据所述实体元数据名称,确定与所述实体元数据名称对应的目标数据库表;
获取模块,用于根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的更新数据库表的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的更新数据库表的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
第七方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的更新数据库表的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的实体元数据设计界面的示意图;
图2是根据本发明实施例的更新数据库表的方法的流程示意图;
图3是根据本发明实施例的另一更新数据库表的方法的流程示意图;
图4是根据本发明实施例的又一更新数据库表的方法的流程示意图;
图5是根据本发明实施例的查询业务数据的方法的流程示意图;
图6是根据本发明实施例的另一查询业务数据的方法的流程示意图;
图7是根据本发明实施例的更新数据库表的装置的结构框图;
图8是根据本发明实施例的查询业务数据的装置的结构框图。
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,软件行业发展飞速,大部分业务功能是基于Web应用程序和数据库结合的架构实现的,例如,各类购物应用程序、办公应用程序等等。在传统Web程序开发中,新增或修改任何一项与数据库相关的功能,都需要编写大量的代码。
本发明实施例提供了一种更新数据库表和查询业务数据的方法,通过中间变量实体元数据对数据库表进行更新以及查询业务数据,可以大大提高相关代码的开发效率。
本发明应用于数据库管理系统,数据库管理系统可以包括客户端和服务端。其中,客户端可以是终端,例如,台式电脑、笔记本电脑、手机等等。服务端可以是服务器或服务器集群等。客户端可以是开发人员所在终端,也可以是普通用户所在终端,安装有Web端程序。服务端可以安装有服务端程序,以及存储有数据库,数据库中存储有大量的数据库表。
下面对实体元数据进行说明。实体元数据用于描述与其对应的数据库表,包括实体元数据名称、数据库表名、默认字段、自定义字段,以及自定义字段的字段配置信息。
其中,默认字段可以包括主键(ID)、外键(MAINID,用于关联其他表)、创建人ID(CREATORID)、创建人名称(CREATORNAME)、创建时间(CREATTIME)、更新人ID(UPDATERID)、更新人名称(UPDATERNAME)、更新时间(UPDATETIME)、部门(DEPT)、单位(UNIT)、域ID(DOMAINID)、保密级别(SECURITY)、流程实例ID(PROCESSINSTID)、流程当前节点(CURRENTNODE)、流程处理人(CURRENTNODEUSER)、流程状态(PROCESSSTATUS)等。需要说明的是,默认字段在客户端的表单中不显示,仅记录在服务端存储的实体元数据中,开发人员在客户端只能对自定义字段的字段配置信息操作。
实体元数据名称、数据库表名、自定义字段和自定义字段的字段配置信息可以在如图1所示的设计界面中进行配置。图1为上述Web端程序的实体元数据设计界面,该设计界面包括三大模块,实体元数据设置模块、字段列表和表单。其中,实体元数据设置模块包括实体元数据名称输入框、数据库表名输入框、页面模板输入框和字段集合输入框。
下面对实体元数据的设置规则进行详细说明。
第一,在实体元数据名称输入框输入实体元数据名称。实体元数据名称为必须输入项。在数据库表名输入框可以通过下拉列表进行选择数据库表名,也可以不输入,一般情况下,实体元数据名称可以与数据库表名相同,两种不同的情况下以实体元数据名称为准。如果选择了数据库表名,则客户端可以从服务端获取到相应数据库表的字段配置信息集合,开发人员可以对字段配置信息集合进行修改。如果没有输入数据库表名,则表明新建一个全新的实体元数据。
第二,页面模板可以进行选择,也可以不选择,如果不选择,则使用默认页面模板。页面模板是开发人员预先创建,并配置在Web端程序中的。开发人员可以通过页面模板编辑软件创建页面模板,例如,在线Velocity等。页面模板可以是原生Htm、JQueryUI、Vue、React、Amis等多种页面格式。页面模板可以包括表单布局和各个组件的定义,其中,表单布局包括表单的行数、列数、每一行或每一列的组件数量等等,组件的定义可以包括组件的显示形式(例如,下拉框、选项、颜色等等),以及组件可以填充的数据长度。
第三,通过字段列表和字段集合输入框均可以对实体元数据的字段配置信息进行设置。字段配置信息的设置规则可以如下:
1.字段布局。
(1)以回车换行分隔行;
(2)英文逗号分隔行内每个字段;
(3)每行中的字段平分表单输入的一行空间,形成一行多列的表单;
(4)连续的多个逗号表示前面的字段占多列。
2.字段类型。
默认为字符串类型,默认展示方式为文本输入框,可直接输入也可从已有选项中选择,例如,可以使用“~日期”、“~时间”、“~数字”、“~密码”、“~下拉框”、“~树”、“~弹出框”等方式指定其他输入类型的输入框。不同类型的输入框如果有自己的特有属性,例如,时间的显示格式,在“^”符号后使用“属性=值”的格式设定,顺序设置多个属性。
3.字段选项。
如果字段需要从选项中选择,则需要使用英文冒号“:”来指定选项,冒号后有值则从冒号后的值中选择,多层级数据以“-”表示层级。冒号后可以接视图元数据(以“$”开头)。特别地,如果以“::”开头,则表示该字段的值可多选。如果需要将选项带的数据填入其他字段则使用“>>”开头,并使用“值1>字段名1&值2>字段名2”的形式填入其他字段,其中值支持全称表达语言(Expression Language,EL)表达式。
4.字段隐藏和只读设置。
可以使用“!”设置字段不显示,“!”后面可以使用EL表达式,这样,当实时计算出某字段的值符合预设条件时,对字段进行隐藏。“!!”表示字段只读与“!”使用方式相同。
5.字段校验。
可以使用“*”符号作为校验条件,默认为必填校验。“*”后面可以使用正则表达式或视图元数据作为校验条件(例如,根据视图元数据得到返回值是“0”或“1”表示校验结果为正确或错误)。支持多个“*”符号串联,按顺序校验。
6.字段默认值。
可以使用%xxx%中包裹的内容作为默认值,例如,%用户ID%,%当前时间%、%视图元数据%等,并支持EL表达式。特别地,当使用%%xxx%%时表示强制默认值,无论新增或者更新时只会按默认值规则计算并存储数据,不会被在表单中输入的属性覆盖。
7.关联其他实体元数据的字段。
当需要把表单上的字段存在另外一个实体元数据中时,例如一对多的子表中,可以使用“$$实体元数据@[0]字段名”实现关联实体元数据的某些字段平铺在本表单,可以使用“$$实体元数据#字段名”存储逗号分隔的数据实现关联实体数据批量写入,可以使用“$$实体元数据”表示引用实体表单作为子表单,可以使用$视图元数据,实现引入查询结果作为表单的一部分。
当开发人员配置好字段配置信息之后,可以进行保存操作。当客户端检测到开发人员的保存操作之后,可以获取到页面模板的标识(即开发人员选择或默认的页面模板)。另外,客户端将开发人员输入的实体元数据名称、数据库表名、字段配置信息等转换为拼音全拼,如果拼音全拼出现重复,则在拼音全拼后面加入后缀数字1、2、3等。然后,可以根据页面模板的标识,在客户端的页面模板库中获取到目标页面模板对应的JS(JavaScript)文件、层叠样式表(Cascading Style Sheets)文件等。最后,客户端可以根据转换格式后的字段配置信息和目标页面模板中的表单布局和各个组件的定义生成目标表单,并进行展示。
下面以一个具体的实体元数据实例进行说明,该实例对应的表单如图1右上方所示。实体元数据名称为“员工基本信息”,数据库表名为“员工基本信息”,页面模板为默认页面模板,字段配置信息为:
“姓名*,身份证号**$身份证号唯一查询,
出生日期*~日期,年龄%%YEARDIFF(CURRENTTIME-出生日期)%%,
性别*:男:女,学历:$学历查询>>ID>学历ID&SFBY>是否毕业,毕业学校!是否毕业==否,学历ID!,
是否毕业~开关!!,毕业日期~日期!是否毕业==否,毕业年数%%YEARDIFF(CURRENTTIME-毕业日期)%%,
$$工作经历^type=tab,”
其中,除“工作经历”字段外,每两个字段占据表单的一行。“姓名”字段为必填校验。“身份证号”字段为按顺序校验,校验条件为视图元数据“身份证号唯一查询”。“出生日期”字段为必填校验,字段类型为“日期”。“年龄”字段为强制默认值,并且规定了年龄的计算方式。“性别”字段为必填校验,并且该字段为选项形式,普通用户在填写表单时可以选择“男”或“女”。“毕业”字段为选项形式,选项可以选择的值从视图元数据“学历查询”中获取,并且需要将选项带的值填入其他字段,填入形式为“ID>学历ID”和“SFBY>是否毕业”,即规定了需要将“学历”选项带的数据填入其他字段(即“是否毕业”)。“是否毕业”字段的字段类型为开关类型,并且该字段为只读模式。“毕业日期”字段的字段类型为日期类型,并且在“是否毕业”为“否”时不显示。“毕业年数”字段在“是否毕业”字段为“否”时不显示,并且“毕业年数”为强制默认值,规定了“毕业年数”的计算方式。实体元数据“员工基本信息”关联了“工作经历”实体元数据,关联的字段可以由普通用户选择。例如,图1中为添加了“单位”和“工作时间”两个字段。
Web端程序还提供了EL表达式编辑器。开发人员可以在EL表达式编辑器中通过预制函数、自定义函数等拼装EL表达式。其中,预制函数可以包括逻辑判断、数字函数、时间函数、字符串函数、数组函数、接口调用函数等多种函数。自定义函数可以是JS(JavaScript)函数。
根据本发明实施例,提供了一种更新数据库表的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种更新数据库表的方法,由上述的服务端执行,图2是根据本发明实施例的更新数据库表的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,接收保存请求,从保存请求中提取第一实体元数据名称和目标表单。
在实施中,当开发人员在图1所示的设计界面中完成实体元数据的设计之后,可以进行保存操作。当客户端检测到保存操作之后,可以根据开发人员输入的第一实体元数据的名称、第一数据库表名、字段配置信息集合和生成的目标表单,生成保存请求并发送至服务端。服务端在接收到保存请求后,可以对保存请求进行解析,从中获取到第一实体元数据名称、第一数据库表名、字段配置信息集合和目标表单。或者,客户端也可以只将第一实体元数据名称和目标表单发送至服务端。服务端在接收到保存请求后,可以对保存请求进行解析,从中获取到第一实体元数据名称和目标表单。其中,第一实体元数据名称的形式可以是$$=xxx,或者,JSON格式“$$”=“xxx”。
在一些可选的实施方式中,服务端如果根据第一实体元数据名称,确定出第一实体元数据,则可以根据从保存请求中提取出的字段配置信息集合,对第一实体元数据中原有的字段配置信息集合进行更新。或者,服务端也可以对目标表单进行解析后得到字段配置信息集合,并根据解析出的字段配置信息集合,对第一实体元数据中原有的字段配置信息集合进行更新。服务端如果没有确定出与第一实体元数据名称对应的第一实体元数据,则可以根据第一实体元数据名称、第一数据库表名和字段配置信息集合,生成第一实体元数据。
需要说明的是,从目标表单中解析出的字段配置信息集合中的字段配置信息与开发人员预输入的字段配置信息集合中的字段配置信息存在区别,即目标表单中的字段配置信息还包括与字段对应的组件的定义,例如,该字段可以填充的数据长度。
步骤S202,根据第一实体元数据名称,确定是否存在第一数据库表。
在实施中,服务端可以根据第一实体元数据名称,在数据库中确定是否存在与第一实体元数据名称匹配的第一数据库表。
步骤S203,当确定存在第一数据库表时,根据目标表单,对第一数据库表进行更新。
在实施中,当服务端确定存在第一数据库表时,可以对目标表单进行解析,得到目标表单所允许的字段类型,根据目标表单所允许的字段类型,对第一数据库表所允许的字段类型进行更新。
步骤S204,当确定不存在第一数据库表时,根据目标表单,创建第二数据库表。
在实施中,当服务端确定不存在第一数据库表时,可以根据目标表单和实体元数据名称,生成数据定义语句(Data Definition Language,DDL),并执行DDL,以创建第二数据库表。
本实施例提供的更新数据库表的方法,服务端根据接收到的保存请求自动进行对数据库表的数据结构进行更新,或者,创建新数据库表的操作,开发人员只需要输入实体元数据名称、字段配置信息集合和页面模板,无需关心数据库表中的数据结构,较为方便。
在本实施例中提供了一种更新数据库表的方法,由上述的服务端执行,图3是根据本发明实施例的更新数据库表的方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,接收保存请求,从保存请求中提取第一实体元数据名称和目标表单。
步骤S301的具体处理与步骤S201的具体处理类似,此处不再赘述。
步骤S302,根据第一实体元数据名称,确定是否存在第一数据库表。
具体地,上述步骤S302包括:
步骤S3021,根据第一实体元数据名称,确定与第一实体元数据名称对应的第一实体元数据。
在实施中,服务端可以根据第一实体元数据名称,确定是否存在与第一实体元数据名称对应的第一实体元数据,如果是,则直接进行下一步骤。如果否,则可以根据第一实体元数据名称、第一数据库表名和字段配置信息集合,生成第一实体元数据。
步骤S3022,从第一实体元数据中提取第一数据库表名。
在实施中,服务端可以对第一实体元数据进行解析,得到第一数据库表名。
步骤S3023,根据第一数据库表名,确定是否存在与第一数据库表名对应的第一数据库表。
在实施中,服务端可以根据第一数据库表名,在数据库中确定是否存在与第一数据库表名对应的第一数据库表。
步骤S303,当确定存在第一数据库表时,根据目标表单,对第一数据库表进行更新。
具体地,上述步骤S303包括:
步骤S3031,对目标表单进行解析,得到第一字段集合,以及与第一字段集合中的每一个字段对应的字段配置信息。
在实施中,服务端可以对目标表单进行解析,得到多个字段,以及与每一个字段对应的字段配置信息。
步骤S3032,将第一字段集合中的预设类型的字段进行剔除,得到第二字段集合。
其中,预设类型的字段为关联实体元数据字段。
在实施中,服务端可以将第一字段集合中的关联实体元数据字段进行剔除,得到第二字段集合。
步骤S3033,根据第二字段集合,以及与第二字段集合中每一个字段对应的字段配置信息,对第一数据库表的数据结构进行更新。
在一些可选的实施方式中,上述步骤S3033包括:
步骤a1,对第二字段集合进行遍历,每遍历到一个字段,确定第一数据库表中是否存在与遍历到的字段匹配的第一字段。
步骤a2,当确定不存在第一字段时,将遍历到的字段,以及与遍历到的字段对应的字段配置信息添加到第一数据库表中。
步骤a3,当确定存在第一字段时,确定第一字段的字段配置信息与遍历到的字段对应的字段配置信息是否匹配。
步骤a4,当确定第一字段的字段配置信息与遍历到的字段对应的字段配置信息不匹配时,根据与遍历到的字段对应的字段配置信息,对第一字段的字段配置信息进行更新。
步骤a5,当确定第一字段的字段配置信息与遍历到的字段对应的字段配置信息匹配时,遍历第二字段集合中的下一个字段,在遍历完第二字段集合中的所有字段后,得到更新数据结构后的数据库表。
例如,可以对字段可以填充的数据长度进行修改等,遍历到的字段对应的字段配置信息中可以填充的数据长度为“36”,第一字段的字段配置信息中可以填充的数据长度为“26”,可以将“26”替换为“36”。
步骤S304,当确定不存在第一数据库表时,根据目标表单,创建第二数据库表。
步骤S304的具体处理与步骤S204的具体处理类似,此处不再赘述。
本实施例提供的更新数据库表的方法,第一,通过实体元数据名称来定位和操作数据库表,实现了业务逻辑层与数据存储层的解耦。这样,开发人员可以独立设计和管理实体元数据,而不必直接处理复杂的数据库细节,即可以提高数据库相关代码的开发效率。第二,由于数据库表中的部分字段不适用修改操作,因此,可以对这部分字段进行筛选,既可以提高更新数据库表的效率,又可以避免数据库表中的预设类型的字段被破坏。第三,通过遍历字段和匹配字段配置信息,可以准确地确定出是进行新增字段操作,还是更新字段操作,又或者是无需进行任何操作,即可以保证数据库表的数据结构是处理正确状态的。
开发人员在设计完实体元数据之后,可以在目标表单中的输入框中填入业务数据。或者,开发人员在设计完实体元数据,并将目标表单发布之后,普通用户可以在目标表单的输入框中填入业务数据。客户端可以将填入的业务数据也发送至服务端,由服务端将业务数据填入相应的数据库表中。
以开发人员在设计实体元数据在目标表单填入业务数据为例,即目标表单中还包括至少一条业务数据,以及与每一条业务数据对应的业务数据标识时,在本实施例中提供了一种更新数据库表的方法,由上述的服务端执行,图4是根据本发明实施例的更新数据库表的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,接收保存请求,从保存请求中提取第一实体元数据名称和目标表单。
步骤S402,根据第一实体元数据名称,确定是否存在第一数据库表。
步骤S401到步骤S402的具体处理与步骤S201到步骤S202(或者步骤S301到步骤S302)的具体处理类似,此处不再赘述。
步骤S403,当确定存在第一数据库表时,根据目标表单,对第一数据库表进行更新。
具体地,上述步骤S403包括:
步骤S4031,根据目标业务数据标识,确定第一数据库表中是否存在与目标业务数据标识对应的第一业务数据。
其中,目标业务数据标识为与至少一条业务数据中任一业务数据对应的业务数据标识。
在实施中,当目标表单中包括业务数据时,服务端在解析目标表单后,可以获取到至少一条业务数据,以及与每一条业务数据对应的业务数据标识。服务端可以根据业务数据标识,确定第一数据库表中是否存在相应的业务数据。
步骤S4032,当确定存在第一业务数据时,根据至少一条业务数据中与目标业务数据标识对应的第二业务数据,对第一业务数据进行更新。
在实施中,当服务端确定存在相应的业务数据时,可以根据从目标表单中提取出的业务数据,对第一数据库表中相应的业务数据进行更新。服务端在更新业务数据之前,可以先根据第一数据库表名、业务数据标识和业务数据,生成更新(Update)结构化查询语言(Structured Query Language,SQL),执行该SQL之后即可完成业务数据的更新操作。
步骤S4033,当确定不存在与第一业务数据时,将第二业务数据的标识和第二业务数据添加到第一数据库表中。
在实施中,当服务端确定不存在相应的业务数据时,可以根据第一数据库表名、业务数据标识和业务数据,生成插入(Insert)SQL,在执行该SQL之后即可完成业务数据的新增操作。
在一些可选的实施方式中,对于业务数据的每个字段,服务端可以确定该字段对应的字段配置信息是否包含有“默认值设置”或“EL表达式”的配置信息,如果是,则可以根据该字段对应的“默认值设置”或“EL表达式”的配置信息,对该字段的字段值进行计算,生成新的业务数据,再将新的业务数据更新或添加到第一数据库表中。
在一些可选的实施方式中,第二业务数据中可以包括关联实体元数据字段,相应地,还可以进行如下步骤:
步骤b1,从第二业务数据的关联实体元数据字段提取第二实体元数据名称,以及至少一条关联业务数据。
步骤b2,根据第二实体元数据名称,确定与第二实体元数据名称对应的第三数据库表。
步骤b3,将每一条关联业务数据添加到第三数据库表中。
步骤b3,将目标业务数据标识添加到第三数据库表中与每一条关联业务数据对应的关联表字段。
例如,第一实体元数据名称为“订单”,第二业务数据为需要添加到第一数据库表中的订单数据,第二业务数据的关联实体数据字段包括有第二实体元数据名称“商品”和多条商品购买记录信息。服务端需要将第二业务数据存储到“订单表”中,还需要将多条商品购买记录信息添加到“商品表”中,并将每条商品购买记录对应的订单标识记录在关联表字段中。第二业务数据可以如下所示:
{
"meta":"订单",
"id":"001",
……
"商品":[{"name":"商品1"}……,{"name":"商品2"}]……
}
“订单表”可以是:
id:001……
id:002……
“商品表”可以是:
name:商品1,mainid:001,……;
name:商品2,mainid:001,……;
name:商品1,mainid:002,……;
name:商品3,mainid:002,……;
其中,mainid为关联表字段。
在一些可选的实施方式中,普通用户在目标表单的输入框中填入业务数据后进行保存之后,服务端接收到的保存请求中不包括第一实体元数据名称,但是包括有多条业务数据和公共业务数据,并且每一条业务数据均包括第二实体元数据名称。服务端可以将每一条业务数据添加到与第二实体元数据名称对应的数据库表中,将公共业务数据添加到每一条业务数据的公共属性字段中。
步骤S404,当确定不存在第一数据库表时,根据目标表单,创建第二数据库表。
步骤S404的具体处理与步骤S204的具体处理类似,此处不再赘述。
本实施例提供的更新数据库表的方法,根据业务数据标识,可以准确地确定出数据库表中是否有相应的业务数据,从而实现对数据库表的准确更新。另外,通过设置关联实体元数据字段,可以实现两个数据库表之间的关联关系,从而可以适应各种类型的业务需求。例如,通过关联实体元数据字段和关联表字段实现一对多或多对多关系,相较于在单个表中嵌套存储大量关联信息,可以提高存储空间利用率和查询性能。
根据本发明实施例,提供了一种查询业务数据的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种查询业务数据的方法,由上述的服务端执行,图5是根据本发明实施例的更新数据库表的方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,接收查询请求,对查询请求进行解析,得到实体元数据名称和查询条件。
在实施中,当服务端接收到查询请求之后,可以对查询请求进行解析,得到实体元数据名称和查询条件。
步骤S502,根据实体元数据名称,确定与实体元数据名称对应的目标数据库表。
在实施中,服务端根据实体元数据名称,确定是否存在与实体元数据名称对应的目标实体元数据,如果是,则从目标实体元数据中提取目标数据库表名,并在数据库中确定与该目标数据库表名对应的数据库。如果否,则根据实体元数据名称,在数据库中确定是否存在与实体元数据名称对应的目标数据库表。
步骤S503,根据查询条件和目标数据库表,获取与查询条件对应的至少一条业务数据。
在实施中,在确定出目标数据库表之后,服务端可以根据查询条件生成查询SQL,并执行该查询SQL,可以查询到与查询条件对应的至少一条业务数据。服务端将与查询条件对应的至少一条业务数据进行封装后得到返回结果,并发送至客户端,由客户端对返回结果进行解析后显示。
在一些可选的实施方式中,在得到返回结果后,对于数据库表的每一个字段,服务端可以该字段的字段配置信息中是否包括有“默认值设置”或“EL表达式”等字段配置信息,如果是,则可以根据相应的字段配置信息对业务数据相应字段的字段值进行计算,得到新的业务数据。服务端可以对新的业务数据进行封装后发送客户端,再客户端进行解析后显示。
本实施例提供的更新数据库表的方法,第一,将查询请求解析为实体元数据名称和查询条件,可以实现对数据库操作的模块化处理。各个步骤相互独立,当需求变化时,只需要修改或扩展对应的模块,而不会影响到整体系统的其他部分。第二,通过实体元数据名称动态确定目标数据库表,使得系统具有很高的灵活性,能够应对不同的业务场景和数据模型,无需为每个表编写特定的查询代码,即可以提高数据库相关代码的开发效率。第三,根据查询条件直接在目标数据库表中进行检索,可以减少对数据库中所有表进行扫描,可以提高数据查询效率。
在本实施例中提供了一种查询业务数据的方法,由上述的服务端执行,图6是根据本发明实施例的更新数据库表的方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,接收查询请求,对查询请求进行解析,得到实体元数据名称和查询条件。
步骤S602,根据实体元数据名称,确定与实体元数据名称对应的目标数据库表。
步骤S601到步骤S602的具体处理与步骤S501到步骤S502的具体处理类似,此处不再赘述。
步骤S603,根据查询条件和目标数据库表,获取与查询条件对应的至少一条业务数据。
具体地,当查询条件包括至少一个业务数据标识时,上述步骤S603包括:
步骤S6031,根据每一个业务数据标识,从目标数据库表中获取与每一个业务数据标识对应的业务数据。
在实施中,服务端可以遍历至少一个业务数据标识中的每一个业务数据标识,每遍历到一个业务数据标识,可以从数据库表中获取与该业务数据标识对应的业务数据。当获取到所有业务数据标识分别对应的业务数据后,可以对获取到的业务数据进行封装,生成返回结果。
在一些可选的实施方式中,当数据库表包括关联实体元数据字段时,在步骤S603之后,还可以进行如下处理:
步骤S604,根据实体元数据名称,确定与实体元数据名称对应的目标实体元数据。
步骤S605,根据目标实体元数据,获取与目标实体元数据对应的关联实体元数据。
步骤S606,对关联实体元数据进行解析,得到关联数据库表名。
步骤S607,根据关联数据库表名,确定与关联数据库表名对应的目标关联数据库表。
步骤S608,根据目标业务数据标识,在目标关联数据库表中确定与目标业务数据标识对应的至少一条关联业务数据。
其中,目标业务数据标识为至少一个业务数据标识中的任一业务数据标识。
步骤S609,将目标业务数据,以及与目标业务数据标识对应的至少一条关联业务数据进行拼接,得到拼接后的目标业务数据。
其中,目标业务数据为至少一条业务数据中与目标业务数据标识对应的业务数据。
在实施中,服务端可以根据实体元数据名称,确定出目标实体元数据,并对目标实体元数据进行解析,获取到关联实体元数据名称,并根据关联实体元数据名称,确定出关联实体元数据。然后,对关联实体元数据进行解析,得到关联数据库表名,并根据关联数据库表名确定出相应的目标关联数据库表。进一步,对于每一个业务数据标识都进行下述的处理:根据目标业务数据标识,在目标关联数据库表中获取到与每一个业务数据标识对应的至少一条关联业务数据。具体可以是对目标关联数据库表中的每一条关联业务数据的关联表字段的字段值与目标业务数据标识进行比较,当比较结果为相同时,则可以确定与该关联业务数据确定为与目标业务数据标识对应的关联业务数据。最后,将目标业务数据对应的至少一条关联业务数据添加到目标业务数据的关联实体元数据字段。这样,就可以得到与每一个业务数据标识对应的完整业务数据。
在一些可选的实施方式中,当得到至少一条业务数据,或者,得到至少一条拼接后的业务数据后,可以进行如下操作:
步骤S609,从数据库表中获取与目标业务数据中每一个字段对应的字段配置信息。
步骤S610,根据与目标业务数据中每一个字段对应的字段配置信息,对目标业务数据中每一个字段对应的字段值进行转换,得到转换字段值后的目标业务数据。
在实施中,对于数据库表的每一个字段,服务端可以确定该字段的字段配置信息中是否包括有“默认值设置”或“EL表达式”等配置信息,如果是,则可以根据相应的配置信息对业务数据相应字段的字段值进行计算,得到新的业务数据。服务端可以对新的业务数据进行封装后发送客户端,再客户端进行解析后显示。
例如,“订单表”可以是:
id:001……
id:002……
“商品表”可以是:
name:商品1,mainid:001,……;
name:商品2,mainid:001,……;
name:商品1,mainid:002,……;
name:商品3,mainid:002,……;
其中,mainid为关联表字段。当目标数据库表为“订单表”、关联数据库表为“商品表”、目标业务数据标识为“001”时,业务数据为“订单表”中的第一条业务数据,多条关联业务数据为“商品表”中的第一条和第二条业务数据。
在一些可选的实施方式中,查询条件中还可以包括目标字段名,以及与目标字段名的目标字段值,服务端可以确定目标数据库表中每一条业务数据中与目标字段名对应的目标字段,并确定目标字段对应的字段值是否与目标字段值相等,如果是,则可以将该业务数据确定为目标查询数据。
本实施例提供的查询业务数据的方法,通过关联实体元数据获取关联数据,确保了业务数据与其关联数据的完整性,使得展示或处理的业务数据更为全面。另外,通过字段配置信息进行字段值转换,可以在数据进入数据库之前就进行有效的验证和处理,避免不符合规范的数据造成数据库异常的问题。
在本实施例中还提供了一种更新数据库表的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种更新数据库表的装置,如图7所示,包括:
接收模块701,用于接收保存请求;
提取模块702,用于从保存请求中提取第一实体元数据名称和目标表单,其中,目标表单为根据用户预输入的字段配置信息集合和选择的页面模板生成的;
确定模块703,用于根据第一实体元数据名称,确定是否存在第一数据库表;
更新模块704,用于当确定存在第一数据库表时,根据目标表单,对第一数据库表进行更新;
或者,
创建模块705,用于当确定不存在第一数据库表时,根据目标表单,创建第二数据库表。
在一种可选的实施方式中,确定模块703,用于:
根据第一实体元数据名称,确定与第一实体元数据名称对应的第一实体元数据;
从第一实体元数据中提取第一数据库表名;
根据第一数据库表名,确定是否存在与第一数据库表名对应的第一数据库表。
在一种可选的实施方式中,更新模块704,用于:
对目标表单进行解析,得到第一字段集合,以及与第一字段集合中的每一个字段对应的字段配置信息;
将第一字段集合中的预设类型的字段进行剔除,得到第二字段集合;
根据第二字段集合,以及与第二字段集合中每一个字段对应的字段配置信息,对第一数据库表的数据结构进行更新。
在一种可选的实施方式中,更新模块704,用于,包括:
对第二字段集合进行遍历;
每遍历到一个字段,确定第一数据库表中是否存在与遍历到的字段匹配的第一字段;
当确定不存在第一字段时,将遍历到的字段,以及与遍历到的字段对应的字段配置信息添加到第一数据库表中;
或者,
当确定存在第一字段时,确定第一字段的字段配置信息与遍历到的字段对应的字段配置信息是否匹配;
当确定第一字段的字段配置信息与遍历到的字段对应的字段配置信息不匹配时,根据与遍历到的字段对应的字段配置信息,对第一字段的字段配置信息进行更新;
或者,
当确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息不匹配时,遍历第二字段集合中的下一个字段;
在遍历完第二字段集合中的所有字段后,得到更新数据结构后的数据库表。
在一种可选的实施方式中,当目标表单中还包括至少一条业务数据,以及与每一条业务数据对应的业务数据标识时,更新模块704,还用于:
根据目标业务数据标识,确定第一数据库表中是否存在与目标业务数据标识对应的第一业务数据,其中,目标业务数据标识为与至少一条业务数据中任一业务数据对应的业务数据标识;
当确定存在第一业务数据时,根据至少一条业务数据中与目标业务数据标识对应的第二业务数据,对第一业务数据进行更新;
或者,
当确定不存在与第一业务数据时,将第二业务数据的标识和第二业务数据添加到第一数据库表中。
在一种可选的实施方式中,当第二业务数据包括关联实体元数据字段时,更新模块704,还用于:
从第二业务数据的关联实体元数据字段提取第二实体元数据名称,以及至少一条关联业务数据;
根据第二实体元数据名称,确定与第二实体元数据名称对应的第三数据库表;
将每一条关联业务数据添加到第三数据库表中;
将目标业务数据标识添加到第三数据库表中与每一条关联业务数据对应的关联表字段。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的更新数据库的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
在本实施例中还提供了一种查询业务数据的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种查询业务数据的装置,如图8所示,包括:
接收模块801,用于接收查询请求;
解析模块802,用于对查询请求进行解析,得到实体元数据名称和查询条件;
确定模块803,用于根据实体元数据名称,确定与实体元数据名称对应的目标数据库表;
获取模块804,用于根据查询条件和目标数据库表,获取与查询条件对应的至少一条业务数据。
在一种可选的实施方式中,查询条件包括至少一个业务数据标识;获取模块804,用于:
根据每一个业务数据标识,从目标数据库表中获取与每一个业务数据标识对应的业务数据。
在一种可选的实施方式中,当数据库表包括关联实体元数据字段时,获取模块804,还用于:
根据实体元数据名称,确定与实体元数据名称对应的目标实体元数据;
根据目标实体元数据,获取与目标实体元数据对应的关联实体元数据;
对关联实体元数据进行解析,得到关联数据库表名;
根据关联数据库表名,确定与关联数据库表名对应的目标关联数据库表;
根据目标业务数据标识,在目标关联数据库表中确定与目标业务数据标识对应的至少一条关联业务数据,其中,目标业务数据标识为至少一个业务数据标识中的任一业务数据标识;
将目标业务数据,以及与目标业务数据标识对应的至少一条关联业务数据进行拼接,得到拼接后的业务数据,其中,目标业务数据为至少一条业务数据中与目标业务数据标识对应的业务数据。
在一种可选的实施方式中,获取模块804,还用于:
从数据库表中获取与目标业务数据中每一个字段对应的字段配置信息;
根据与目标业务数据中每一个字段对应的字段配置信息,对目标业务数据中每一个字段对应的字段值进行转换,得到转换字段值后的目标业务数据。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的查询业务数据的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图7所示的更新数据库表的装置,或者具有上述图8所示的查询业务数据的装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (15)
1.一种更新数据库表的方法,其特征在于,所述方法应用于数据库管理系统,所述方法包括:
接收保存请求;
从所述保存请求中提取第一实体元数据名称和目标表单,其中,所述目标表单为根据用户预输入的字段配置信息集合和选择的页面模板生成的;
根据所述第一实体元数据名称,确定是否存在第一数据库表;
当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新;
或者,
当确定不存在所述第一数据库表时,根据所述目标表单,创建第二数据库表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一实体元数据名称,确定是否存在第一数据库表,包括:
根据所述第一实体元数据名称,确定与所述第一实体元数据名称对应的第一实体元数据;
从所述第一实体元数据中提取第一数据库表名;
根据所述第一数据库表名,确定是否存在与所述第一数据库表名对应的所述第一数据库表。
3.根据权利要求1或2所述的方法,其特征在于,所述当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新,包括:
对所述目标表单进行解析,得到第一字段集合,以及与所述第一字段集合中的每一个字段对应的字段配置信息;
将所述第一字段集合中的预设类型的字段进行剔除,得到第二字段集合;
根据所述第二字段集合,以及与所述第二字段集合中每一个字段对应的字段配置信息,对所述第一数据库表的数据结构进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第二字段集合,以及与所述第二字段集合中每一个字段对应的字段配置信息,对所述第一数据库表的数据结构进行更新,包括:
对所述第二字段集合进行遍历;
每遍历到一个字段,确定所述第一数据库表中是否存在与遍历到的字段匹配的第一字段;
当确定不存在所述第一字段时,将所述遍历到的字段,以及与所述遍历到的字段对应的字段配置信息添加到所述第一数据库表中;
或者,
当确定存在所述第一字段时,确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息是否匹配;
当确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息不匹配时,根据与所述遍历到的字段对应的字段配置信息,对所述第一字段的字段配置信息进行更新;
或者,
当确定所述第一字段的字段配置信息与所述遍历到的字段对应的字段配置信息不匹配时,遍历所述第二字段集合中的下一个字段;
在遍历完所述第二字段集合中的所有字段后,得到更新数据结构后的数据库表。
5.根据权利要求1所述的方法,其特征在于,当所述目标表单中还包括至少一条业务数据,以及与每一条业务数据对应的业务数据标识时,所述当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新,包括:
根据目标业务数据标识,确定所述第一数据库表中是否存在与所述目标业务数据标识对应的第一业务数据,其中,所述目标业务数据标识为与至少一条业务数据中任一业务数据对应的业务数据标识;
当确定存在所述第一业务数据时,根据至少一条业务数据中与所述目标业务数据标识对应的第二业务数据,对所述第一业务数据进行更新;
或者,
当确定不存在与所述第一业务数据时,将所述第二业务数据的标识和所述第二业务数据添加到所述第一数据库表中。
6.根据权利要求5所述的方法,其特征在于,当所述第二业务数据包括关联实体元数据字段时,所述方法还包括:
从所述第二业务数据的关联实体元数据字段提取第二实体元数据名称,以及至少一条关联业务数据;
根据所述第二实体元数据名称,确定与所述第二实体元数据名称对应的第三数据库表;
将每一条关联业务数据添加到所述第三数据库表中;
将所述目标业务数据标识添加到所述第三数据库表中与每一条关联业务数据对应的关联表字段。
7.一种查询业务数据的方法,其特征在于,所述方法应用于如权利要求1-6任一项所述的数据库管理系统,所述方法包括:
接收查询请求;
对所述查询请求进行解析,得到实体元数据名称和查询条件;
根据所述实体元数据名称,确定与所述实体元数据名称对应的目标数据库表;
根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据。
8.根据权利要求7所述的方法,其特征在于,所述查询条件包括至少一个业务数据标识;所述根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据,包括:
根据每一个业务数据标识,从所述目标数据库表中获取与每一个业务数据标识对应的业务数据。
9.根据权利要求8所述的方法,其特征在于,当所述数据库表包括关联实体元数据字段时,所述方法还包括:
根据所述实体元数据名称,确定与所述实体元数据名称对应的目标实体元数据;
根据所述目标实体元数据,获取与所述目标实体元数据对应的关联实体元数据;
对所述关联实体元数据进行解析,得到关联数据库表名;
根据所述关联数据库表名,确定与所述关联数据库表名对应的目标关联数据库表;
根据目标业务数据标识,在所述目标关联数据库表中确定与所述目标业务数据标识对应的至少一条关联业务数据,其中,所述目标业务数据标识为至少一个业务数据标识中的任一业务数据标识;
将目标业务数据,以及与所述目标业务数据标识对应的至少一条关联业务数据进行拼接,得到拼接后的业务数据,其中,所述目标业务数据为至少一条业务数据中与所述目标业务数据标识对应的业务数据。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
从所述数据库表中获取与所述目标业务数据中每一个字段对应的字段配置信息;
根据与所述目标业务数据中每一个字段对应的字段配置信息,对所述目标业务数据中每一个字段对应的字段值进行转换,得到转换字段值后的目标业务数据。
11.一种更新数据库表的装置,其特征在于,所述装置应用于数据库管理系统,所述装置包括:
接收模块,用于接收保存请求;
提取模块,用于从所述保存请求中提取第一实体元数据名称和目标表单,其中,所述目标表单为根据用户预输入的字段配置信息集合和选择的页面模板生成的;
确定模块,用于根据所述第一实体元数据名称,确定是否存在第一数据库表;
更新模块,用于当确定存在所述第一数据库表时,根据所述目标表单,对所述第一数据库表进行更新;
或者,
创建模块,用于当确定不存在所述第一数据库表时,根据所述目标表单,创建第二数据库表。
12.一种查询业务数据的装置,其特征在于,所述装置应用于数据库管理系统,所述装置包括:
接收模块,用于接收查询请求;
解析模块,用于对所述查询请求进行解析,得到实体元数据名称和查询条件;
确定模块,用于根据所述实体元数据名称,确定与所述实体元数据名称对应的目标数据库表;
获取模块,用于根据所述查询条件和所述目标数据库表,获取与所述查询条件对应的至少一条业务数据。
13.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至6中任一项所述的更新数据库表的方法,或者,执行权利要求7至10中任一项所述的查询业务数据的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的更新数据库表的方法,或者,执行权利要求7至10中任一项所述的查询业务数据的方法。
15.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的更新数据库表的方法,或者,执行权利要求7至10中任一项所述的查询业务数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410262050.0A CN118193551A (zh) | 2024-03-07 | 2024-03-07 | 更新数据库表和查询业务数据的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410262050.0A CN118193551A (zh) | 2024-03-07 | 2024-03-07 | 更新数据库表和查询业务数据的方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118193551A true CN118193551A (zh) | 2024-06-14 |
Family
ID=91407925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410262050.0A Pending CN118193551A (zh) | 2024-03-07 | 2024-03-07 | 更新数据库表和查询业务数据的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118193551A (zh) |
-
2024
- 2024-03-07 CN CN202410262050.0A patent/CN118193551A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
CN107958057B (zh) | 一种用于异构数据库中数据迁移的代码生成方法及装置 | |
CN111177231A (zh) | 报表生成方法和报表生成装置 | |
US8065323B2 (en) | Offline validation of data in a database system for foreign key constraints | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
US8615526B2 (en) | Markup language based query and file generation | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
US11995075B2 (en) | System and method for efficient transliteration of machine interpretable languages | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN112930529A (zh) | 从概念数据模型生成软件工件 | |
CN112015722A (zh) | 数据库管理方法、数据血缘分析方法以及相关装置 | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
CN111143390A (zh) | 更新元数据的方法及装置 | |
CN115470191A (zh) | 数据库更新系统、方法及相应计算机设备和存储介质 | |
US11314489B1 (en) | Automated authoring of software solutions by first analyzing and resolving anomalies in a data model | |
CN109284469B (zh) | 网页开发框架 | |
CN109634585B (zh) | 一种基于表单自适应展示和更新服务端数据的方法 | |
CN108959391B (zh) | 展现数据库集群架构图的设备、系统、方法、存储介质 | |
JP7131119B2 (ja) | ソースアプリケーションからのソースデータをターゲットアプリケーションのターゲットデータへとマージするためのシステムおよび方法 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN109829010B (zh) | 一种词条修改方法和词条修改装置 | |
CN118193551A (zh) | 更新数据库表和查询业务数据的方法、装置、设备及介质 | |
CN115579096A (zh) | 一种针对药物警戒e2b r3标准报告的自动生成与解析验证方法、系统及存储介质 | |
CN118193567A (zh) | 生成查询语句和查询业务数据的方法、装置、设备及介质 | |
CN111279350A (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 |