CN118193567A - 生成查询语句和查询业务数据的方法、装置、设备及介质 - Google Patents
生成查询语句和查询业务数据的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN118193567A CN118193567A CN202410262185.7A CN202410262185A CN118193567A CN 118193567 A CN118193567 A CN 118193567A CN 202410262185 A CN202410262185 A CN 202410262185A CN 118193567 A CN118193567 A CN 118193567A
- Authority
- CN
- China
- Prior art keywords
- query
- condition
- view metadata
- name
- target
- 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 70
- 238000004321 preservation Methods 0.000 claims abstract description 3
- 230000015654 memory Effects 0.000 claims description 25
- 238000013461 design Methods 0.000 claims description 14
- 238000002360 preparation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术领域,公开生成查询语句和查询业务数据的方法、装置、设备及介质,本发明包括:接收保存请求;从保存请求中提取视图元数据名称、至少一个条件字段、每一个条件字段的条件配置信息;根据视图元数据名称、至少一个条件字段、每一个条件字段的条件配置信息,生成预备查询语句。接收查询请求;对查询请求进行解析,得到第一视图元数据名称、至少一个查询参数、每一个查询参数的条件值和条件符号;根据第一视图元数据名称,获取第一预备查询语句;根据第一预备查询语句、至少一个查询参数、每一个查询参数的条件值和条件符号,生成目标查询语句;执行目标查询语句,获取第一查询数据集合。本发明可以提高相关代码的开发效率。
Description
技术领域
本发明涉及数据库技术领域,具体涉及生成查询语句和查询业务数据的方法、装置、设备及介质。
背景技术
近年来,Web程序的开发工作的技术门槛较高,通常开发Web程序需要兼顾客户端、服务端和数据库三部分的代码。
在相关技术中,在每次新增或修改对数据库表的查询条件时,都需要用户编写相应的结构化语言(Structured Query Language)脚本。在接收到查询参数后,再根据结构化语言脚本和查询参数进行拼接,得到查询语句,执行查询语句之后即可获取到查询数据。
但是,在查询条件较为复杂时,或者,需要设置大量查询条件的情况下,导致相关代码的开发效率较低。
发明内容
有鉴于此,本发明提供了一种生成查询语句和查询业务数据的方法、装置、设备及介质,以解决查询条件相关代码的开发效率较低的问题。
第一方面,本发明提供了一种生成查询语句的方法,所述方法应用于数据库管理***,所述方法包括:
接收保存请求;
从所述保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,其中,所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的;
根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句。
本发明提供的一种生成查询语句的方法,具有如下优点:
第一,开发人员可以根据实际需求,在视图元数据设计界面直接输入视图元数据名称及相应的条件字段和条件配置信息,这大大增强了***的灵活性和自定义能力,使得开发人员可以根据业务场景定制符合自身需求的数据视图。并且,该方案允许开发人员通过图形化界面直观地设定查询条件,无需编写复杂的查询语句,降低了使用门槛,并且可以提高数据库相关代码的开发效率。另外,服务端可以自动根据开发人员的输入生成预备查询语句,减少了出错概率。
第二,当需要基于同一视图进行不同条件参数下的查询时,只需调用预先设置好的预备查询语句即可,可以增强业务数据的查询效率。
第三,由于用户可以根据实际情况动态添加、修改或删除条件字段及其配置信息,因此该方案可以随着业务需求变更快速响应,无需根据业务需求再重新编写数据库相关代码,即可以提高相关代码的开发效率。
在一种可选的实施方式中,所述根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句,包括:
根据所述视图元数据名称,获取与所述视图元数据名称对应的目标视图元数据;
从所述目标视图元数据中提取所述目标数据库表名;
根据所述目标数据库表名、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成所述预备查询语句。
具体地,第一,该方案可以自动地生成预备查询语句,极大地简化了查询语句的构造过程,进一步,可以提高查询效率,并且,也可以减少因人工编写查询导致的错误。第二,将视图元数据作为中间层,既封装了数据库表的具体细节,又提供了丰富的查询条件接口,这种设计模式可以增强代码的模块化和复用性,对于频繁变动或相似查询需求,只需要调整视图元数据的条件配置就能实现快速响应。
第二方面,本发明提供了一种查询业务数据的方法,所述方法应用于数据库管理***,所述方法包括:
接收查询请求;
对所述查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号;
根据所述第一视图元数据名称,获取与所述第一视图元数据名称对应的第一预备查询语句;
根据所述第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句;
执行所述目标查询语句,获取第一查询数据集合。
本发明提供的一种查询业务数据的方法,具有如下优点:
第一,根据视图元数据名称直接获取预备查询语句,可以减少了重复编写基础查询的工作量,进一步,可以提高查询效率。第二,通过视图元数据作为中间层数据,当数据库表结构发生变化时,只需更新视图元数据即可,这样,无需重新编写相关查询代码,可以大大提高数据库相关代码的开发效率。
在一种可选的实施方式中,所述方法还包括:
根据所述第一视图元数据名称,确定与所述第一视图元数据名称对应的目标视图元数据;
当确定所述目标视图元数据中包括关联关系信息时,从所述关联关系信息中提取关联表名,以及至少一个关联字段名称;
根据所述关联表名,确定与所述关联表名对应的目标关联表;
根据每一个关联字段名称,在所述目标关联表中确定与所述第一查询数据集合中每一条数据对应的至少一条关联数据;
将每一条数据,以及与每一条数据对应的至少一条关联数据进行拼接,得到第二查询数据集合。
具体地,本方案可以根据视图元数据中的关联关系信息自动加载关联表中的数据,简化了查询过程,提高了开发效率。并且,通过拼接关联数据,确保了查询结果中包含了与主数据相关的全部信息,提高了数据的完整性。通过一次性加载关联数据并拼接到一起,可以减少多次数据库查询的开销,特别是在批量处理场景下,能够提升***整体性能。
在一种可选的实施方式中,所述方法还包括:
从所述目标视图元数据中,提取所述目标视图元数据的类型;
根据所述目标视图元数据的类型,对所述第二查询数据集合中的所有数据进行封装,得到返回结果。
具体地,根据目标视图元数据的类型对第二查询数据集合进行封装,确保了返回结果的数据结构与业务需求相匹配,便于前端展示和后端处理。
第三方面,本发明提供了一种生成查询语句的装置,所述装置应用于数据库管理***,所述装置包括:
接收模块,用于接收保存请求;
提取模块,用于从所述保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,其中,所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的;
生成模块,用于根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句。
第四方面,本发明提供了一种查询业务数据的装置,所述装置应用于数据库管理***,所述装置包括:
接收模块,用于接收查询请求;
解析模块,用于对所述查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号;
获取模块,用于根据所述第一视图元数据名称,获取与所述第一视图元数据名称对应的第一预备查询语句;
生成模块,用于根据所述第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句;
执行模块,用于执行所述目标查询语句,获取第一查询数据集合。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的生成查询语句的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的生成查询语句的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
第七方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的生成查询语句的方法,或者,执行上述第二方面或其对应的任一实施方式的查询业务数据的方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的视图元数据设计界面的示意图;
图2是根据本发明实施例的生成查询语句的方法的流程示意图;
图3是根据本发明实施例的另一生成查询语句的方法的流程示意图;
图4是根据本发明实施例的查询业务数据的方法的流程示意图;
图5是根据本发明实施例的另一查询业务数据的方法的流程示意图;
图6是根据本发明实施例的生成查询语句的装置的结构框图;
图7是根据本发明实施例的查询业务数据的装置的结构框图;
图8是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,软件行业发展飞速,大部分业务功能是基于Web应用程序和数据库结合的架构实现的,例如,各类购物应用程序、办公应用程序等等。在传统Web程序开发中,新增或修改任何一项与数据库相关的功能,都需要编写大量的代码。
本发明实施例提供了一种生成查询语句和查询业务数据的方法,通过中间变量视图元数据预先生成查询语句以查询业务数据,可以大大提高相关代码的开发效率。
本发明应用于数据库管理***,数据库管理***可以包括客户端和服务端。其中,客户端可以是终端,例如,台式电脑、笔记本电脑、手机等等。服务端可以是服务器或服务器集群等。客户端可以是开发人员所在终端,也可以是普通用户所在终端,安装有Web端程序。服务端可以安装有服务端程序,以及存储有数据库,数据库中存储有大量的数据库表。
下面对视图元数据进行说明。视图元数据对应数据库中的视图,用于根据条件查询业务数据。视图元数据可以包括视图元数据名称、数据库表名、视图元数据的类型、页面模板、条件字段,以及条件字段的条件配置信息。
其中,视图元数据名称、数据库表名、视图元数据的类型、页面模板、条件字段和条件字段的字段配置信息均可以在如图1所示的视图元数据设计界面中进行配置,该设计界面包括三大模块,视图元数据设置模块、字段列表,以及与视图类型对应的条件输入模块。其中,视图元数据设置模块包括视图元数据名称输入框、数据库表名输入框、视图类型输入框、页面模板输入框和字段集合输入框。
下面对视图元数据的设置规则进行详细说明。
第一,在视图元数据名称输入框输入视图元数据名称。视图元数据名称为必须输入项,为视图元数据的唯一标识。在数据库表名输入框中可以通过下拉列表选择实体元数据名称或数据库表名。如果选择了实体元数据名称,则客户端可以从服务端获取到相应实体元数据的字段配置信息集合。如果选择了数据库表名,则客户端可以从服务端获取到相应数据库表的表信息和字段配置信息集合。从服务端获取到的相关信息可以显示在视图元数据设置模块。
第二,在视图类型输入框通过下拉列表选择视图元数据的类型。视图元数据的类型可以是选项类型、校验类型、默认值类型等(不选择默认为列表类型)。列表类型用于展示列表,可以选择是否带表单新增、修改、查看、删除、自定义按钮等按钮。选项类型可以指定选项显示字段和值字段,拼接为下拉选项,可以指定父节点字段组成树形选项。校验类型可以自定义校验结果和提示消息。默认值类型仅能返回一个值,常用于自动生成编号等逻辑。
第三,页面模板可以进行选择,也可以不选择,如果不选择,则使用默认页面模板,例如,默认页面模块可以是列表模板。页面模板是开发人员预先创建,并配置在Web端程序中的。开发人员可以通过页面模板编辑软件创建页面模板,例如,在线Velocity等。页面模板可以是原生Htm、JQueryUI、Vue、React、Amis等多种页面格式。页面模板可以包括表单布局和各个组件的定义,其中,表单布局包括表单的行数、列数、每一行或每一列的组件数量等等,组件的定义可以包括组件的显示形式(例如,下拉框、选项、颜色等等),以及组件可以填充的数据长度。
第四,通过字段列表和字段集合输入框均可以对视图元数据所涉及的条件字段集合和条件配置信息进行设置。
1.条件字段集合。
(1)视图元数据默认列出所选的实体元数据或数据库表的全部字段,可以自行删除不需要的字段。
(2)对于不需要显示的字段,可以在字段后加“!”隐藏字段。
(3)字段的形式为选项时,可以设置转义为选项的显示字段,可以使用“~”设置字段显示的别名,具体可以使用数据库函数进行计算。
(4)可以使用“xxx.*”表示查询“xxx”数据库表的全部字段。
(5)可使用“%xxx%”包裹的全称表达语言(Expression Language,EL)表达式对字段进行查询后的计算和处理。
2.条件配置信息。
(1)通过在字段集合输入框的最后“@开头的条件表达式”设置实体元数据的关联关系和数据过滤条件。
例1,设置实体元数据的关联关系“@$$xxx.ID+=$$yyy.MAINID”,表示“xxx”数据库表和“yyy”数据库表存在左连接的外键关联关系。
例2,设置数据过滤条件“$$xxx.NAME=#{NAME}”,表示“xxx”数据库表的NAME字段与查询参数NAME值相等。
例3,同时设置关联关系和数据过滤条件“@$$xxx.ID+=$$yyy.MAINID&$$xxx.NAME=#{NAME}”,表示“xxx”数据库表和“yyy”数据库表存在左连接的外键关联关系,并且“xxx”数据库表的NAME字段与查询参数NAME值相等。
(2)通过“/$$”指定分组条件实现“group by”的分组查询。例如,“/$$xxx.zz”表示根据“zz”字段对“xxx”数据库表中的业务数据进行分组查询。
(3)通过“+”指定正序排序,通过“-”指定倒序排序。
例1,“|$$xxx.yyy+”表示根据“yyy”字段对“xxx”数据库表中的数据进行正序排序。
例2,“$$xxx.zz-”表示根据“zz”字段,对“xxx”数据库表中的数据进行倒序排序。
(4)通过CHILD[$$……,$$x……]将关联实体元数据对应的关联表中的数据作为子节点组成数组,放在每一条数据的CHILD属性中。
例如,CHILD[$$xxx.yyy,$$xxx.zzz]中表示将关联表“xxx”中的“yyy”字段的值和“zzz”字段的值,拼接为一个数组,放在数据库表的相应数据的CHILD属性中。
(5)通过($$……,)表示将关联数据的指定字段拼接为“,”分割的值。
例如,($$xxx.yyy,)表示将关联表“xxx”所有数据的“yyy”字段的值使用“,”拼接在一起。
(6)通过{$$……}表示将关联数据拼接在查询结果数据后面。
例如,{$$xxx.yyy}表示将关联表“xxx”中“yyy”字段的值拼接在查询结果数据后面。
当开发人员配置好条件字段集合,以及条件配置信息之后,可以进行保存操作。当客户端检测到开发人员的保存操作之后,可以获取到页面模板的标识(即用户选择或默认的页面模板)。另外,客户端将开发人员输入的视图元数据名称、数据库表名、条件字段,条件配置信息等转换为拼音全拼,如果拼音全拼出现重复,则在拼音全拼后面加入后缀数字1、2、3等。然后,可以根据页面模板的标识,在Web端程序的页面模板库中获取到目标页面模板对应的JS(JavaScript)文件、层叠样式表(Cascading Style Sheets)文件等。最后,客户端可以根据转换格式后的条件配置信息和目标页面模板中的表单布局和各个组件的定义生成条件输入模块,并进行展示,如图1右上方所示。
Web端程序还提供了EL表达式编辑器。开发人员可以在EL表达式编辑器中通过预制函数、自定义函数等拼装EL表达式。其中,预制函数可以包括逻辑判断、数字函数、时间函数、字符串函数、数组函数、接口调用函数等多种函数。自定义函数可以是JS(JavaScript)函数。
根据本发明实施例,提供了一种生成查询语句的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种生成查询语句的方法,由上述的服务端执行,图2是根据本发明实施例的生成查询语句的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,接收保存请求,从保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息。
其中,视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的。
在实施中,当开发人员在图1所示的设计界面中完成视图元数据的设计之后,可以进行保存操作。当客户端检测到开发的保存操作之后,可以根据开发人员输入的视图元数据的名称、数据库表名、条件字段、条件配置信息集、视图元数据的类型等,生成保存请求并发送至服务端。服务端在接收到保存请求后,可以对保存请求进行解析,从中获取到视图元数据名称、数据库表名、条件字段、条件配置信息、视图元数据的类型等。
步骤S202,根据视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与视图元数据名称对应的预备查询语句。
其中,预备查询语句的类型可以是结构化查询语言(Structured QueryLanguage,SQL)语句。
在实施中,服务端可以根据视图元数据名称、每一个条件字段和每一个条件字段的条件配置信息、视图元数据的类型,生成视图元数据。另外,服务端还可以获取查询语句模板,将视图元数据名称、数据库表名、条件字段,以及条件配置信息填充到查询语句模板的指定位置处,得到预备查询语句,并进行存储。
本实施例提供的生成查询语句的方法:
第一,开发人员可以根据实际需求,在视图元数据设计界面直接输入视图元数据名称及相应的条件字段和条件配置信息,这大大增强了***的灵活性和自定义能力,使得开发人员可以根据业务场景定制符合自身需求的数据视图。并且,该方案允许开发人员通过图形化界面直观地设定查询条件,无需编写复杂的SQL语句,降低了使用门槛,并且可以提高数据库相关代码的开发效率。另外,服务端可以自动根据开发人员的输入生成预备查询语句,减少了出错概率。
第二,当需要基于同一视图进行不同条件参数下的查询时,只需调用预先设置好的预备查询语句即可,可以增强业务数据的查询效率。
第三,由于用户可以根据实际情况动态添加、修改或删除条件字段及其配置信息,因此该方案可以随着业务需求变更快速响应,无需根据业务需求再重新编写数据库相关代码,即可以提高相关代码的开发效率。
在本实施例中提供了一种生成查询语句的方法,由上述的服务端执行,图3是根据本发明实施例的生成查询语句的方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,接收保存请求,从保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息。
其中,视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的。
步骤S301的具体处理与步骤S201的具体处理类似,此处不再赘述。
步骤S302,根据视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与视图元数据名称对应的预备查询语句。
具体地,上述步骤S302包括:
步骤S3021,根据视图元数据名称,获取与视图元数据名称对应的目标视图元数据。
在实施中,服务端可以根据视图元数据名称,确定是否存在与视图元数据名称对应的目标视图元数据,如果是,则可以根据提取出的条件字段和条件配置信息,对目标视图元数据进行更新,并进行步骤S3022,如果否,则可以根据视图元数据名称、数据库表名、至少一个条件字段,以及与每一个条件字段对应的条件配置信息、视图元数据的类型等,生成目标视图元数据。
步骤S3022,从目标视图元数据中提取目标数据库表名。
在实施中,服务端可以对目标视图元数据进行解析后,从中提取出目标数据库表名。
步骤S3023,根据目标数据库表名、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成预备查询语句。
在实施中,服务端可以先获取查询语句模板,将目标数据库表名、条件字段,以及条件配置信息填充到查询语句模板的指定位置处,得到预备查询语句,并进行存储。
本实施例提供的生成查询语句的方法,第一,该方案可以自动地生成预备查询语句,极大地简化了查询语句的构造过程,进一步,可以提高查询效率,并且,也可以减少因人工编写查询导致的错误。第二,将视图元数据作为中间层,既封装了数据库表的具体细节,又提供了丰富的查询条件接口,这种设计模式可以增强代码的模块化和复用性,对于频繁变动或相似查询需求,只需要调整视图元数据的条件配置就能实现快速响应。
根据本发明实施例,提供了一种查询业务数据的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种查询业务数据的方法,由上述的服务端执行,图4是根据本发明实施例的查询业务数据的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,接收查询请求,对查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号。
在实施中,在如图1右上方所示条件输入模块中,普通用户可以条件字段对应的输入框中输入条件值,并点击“搜索”控件,客户端在检测到该操作之后,可以根据条件输入模块对应的第一视图元数名称、预设的条件字段(也即查询参数)、条件配置信息(包括有条件符号)和相应的字段值(也即条件值),生成查询请求,并发送至服务端。服务端在接收到查询请求后,可以对查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号。例如,在图1中,查询参数包括“姓名”和“身份证号”。
步骤S402,根据第一视图元数据名称,获取与第一视图元数据名称对应的第一预备查询语句。
在实施中,服务端可以根据第一视图元数据名称,确定出与第一视图元数据名称对应的第一预备查询语句。
步骤S403,根据第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句。
具体地,服务端可以根据查询参数,在第一预备查询语句中确定出查询参数所在的目标位置,并将查询参数的条件值和条件符号按预定规则填写到目标位置处,可以得到目标查询语句。
例如,{“AGE”>:“5”},其中,查询参数为“AGE”,条件符号位“>”,条件值“5”。
步骤S404,执行目标查询语句,获取第一查询数据集合。
其中,目标查询语句可以是SQL语句。
具体地,服务端可以执行目标查询语句,通过目标查询语句中携带的查询条件,从数据库存储的数据库表中获取到第一查询数据集合。
本实施例提供的查询业务数据的方法,第一,根据视图元数据名称直接获取预备查询语句,可以减少了重复编写基础查询的工作量,进一步,可以提高查询效率。第二,通过视图元数据作为中间层数据,当数据库表结构发生变化时,只需更新视图元数据即可,这样,无需重新编写相关查询代码,可以大大提高数据库相关代码的开发效率。
在本实施例中提供了一种查询业务数据的方法,由上述的服务端执行,图5是根据本发明实施例的查询业务数据的方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,接收查询请求,对查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号。
步骤S502,根据第一视图元数据名称,获取与第一视图元数据名称对应的第一预备查询语句。
步骤S503,根据第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句。
步骤S504,执行目标查询语句,获取第一查询数据集合。
步骤S501到步骤S504的具体处理与步骤S401到步骤S404的具体处理类似,此处不再赘述。
步骤S505,根据第一视图元数据名称,确定与第一视图元数据名称对应的目标视图元数据。
在实施中,服务端存储有多个视图元数据。服务端可以根据第一视图元数据名称,从多个视图元数据中确定出目标视图元数据。
步骤S506,当确定目标视图元数据中包括关联关系信息时,从关联关系信息中提取关联表名,以及至少一个关联字段名称。
在实施中,服务端可以确定目标视图元数据的条件配置信息中是否包括关联关系信息,如果是,则可以从关联关系信息中提取关联表名,以及关联字段名称。例如,关联关系信息为“@$$xxx.ID+=$$yyy.MAINID”,目标视图元数据对应的数据库表名为“xxx”,关联表名为“yyy”,关联字段名称为“MAINID”。
步骤S507,根据关联表名,确定与关联表名对应的目标关联表。
在实施中,服务端可以根据关联表名,在数据库存储的多张数据库表中确定出目标关联表。
步骤S508,根据每一个关联字段名称,在目标关联表中确定与第一查询数据集合中每一条数据对应的至少一条关联数据。
在实施中,对于每一个关联字段名称,服务端可以根据关联字段名称,以及第一查询数据集合中每一条数据中与关联字段名称对应的目标字段的字段值,确定出与每一条数据对应的关联数据。具体可以通过以下两种方式进行处理:
方式一,服务端可以遍历目标关联表中的每一条数据,每遍历到一条数据,确定该条数据中与关联字段名称对应的关联字段的字段值是否与第一查询数据集中目标数据的目标字段的字段值相同,如果是,则可以将遍历到的数据确定为目标数据的关联数据。其中,目标数据为第一查询数据集中的任一条数据。如果否,则可以遍历下一条目标关联表中的下一条数据。以此类推,可以确定出与第一查询数据集合中每一条数据对应的关联数据。
方式二,服务端可以遍历第一查询数据集合中的每一条数据,每遍历到一条数据,确定遍历到的数据中与关联字段名称对应的目标字段的字段值,并确定目标关联表中是否存在至少一条数据的关联字段的字段值与目标字段的字段值相同,如果是,则可以将至少一条数据确定为与遍历到的数据对应的关联数据。如果否,则可以遍历第一查询数据集合下一条数据。以此类推,可以确定出与第一查询数据集合中每一条数据对应的关联数据。
例如,关联字段名称为“MAINID”,目标字段的名称为“ID”,第一数据集合中目标数据的“ID”为“001”,可以将关联表中“MAINID”=“001”的数据确定为与目标数据对应的关联数据。
步骤S509,将每一条数据,以及与每一条数据对应的至少一条关联数据进行拼接,得到第二查询数据集合。
在实施中,对于每一条数据,服务端可以将该数据对应的至少一条关联数据拼接在该数据的后面,得到拼接后的数据,拼接后的多条数据构成了第二查询数据集合。
步骤S510,从目标视图元数据中,提取目标视图元数据的类型。
其中,目标视图元数据的类型可以是数据字典类型、列表类型或树形等。
在实施中,服务端可以对目标实体元数据进行解析,提取出目标视图元数据的类型。
步骤S511,根据目标视图元数据的类型,对第二查询数据集合中的所有数据进行封装,得到返回结果。
在实施中,服务端可以根据目标视图元数据的类型,获取目标视图元数据的类型对应的转换方式,并将第二查询数据集合中的所有数据进行格式转换,得到最终的返回结果,并发送至客户端。
在一些可选的实施方式中,服务端可以根据条件配置信息,对第二查询数据集中的每一条数据中的字段值进行转换。例如,条件配置信息中设置了EL表达式,需要将字段值输入到EL表达式中得到计算结果。
本实施例提供的查询业务数据的方法,第一,本方案可以根据视图元数据中的关联关系信息自动加载关联表中的数据,简化了查询过程,提高了开发效率。第二,通过拼接关联数据,确保了查询结果中包含了与主数据相关的全部信息,提高了数据的完整性。并且,通过一次性加载关联数据并拼接到一起,可以减少多次数据库查询的开销,特别是在批量处理场景下,能够提升***整体性能。第三,根据目标视图元数据的类型对第二查询数据集合进行封装,确保了返回结果的数据结构与业务需求相匹配,便于前端展示和后端处理。
在本实施例中还提供了一种生成查询语句的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种生成查询语句的装置,如图6所示,包括:
接收模块601,用于接收保存请求;
提取模块602,用于从所述保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,其中,所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的;
生成模块603,用于根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句。
在一些可选的实施方式中,生成模块603,用于:
根据所述视图元数据名称,获取与所述视图元数据名称对应的目标视图元数据;
从所述目标视图元数据中提取所述目标数据库表名;
根据所述目标数据库表名、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成所述预备查询语句。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的生成查询语句的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
在本实施例中还提供了一种查询业务数据的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种查询业务数据的装置,如图7所示,包括:
接收模块701,用于接收查询请求;
解析模块702,用于对所述查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号;
获取模块703,用于根据所述第一视图元数据名称,获取与所述第一视图元数据名称对应的第一预备查询语句;
生成模块704,用于根据所述第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句;
执行模块705,用于执行所述目标查询语句,获取第一查询数据集合。
在一些可选的实施方式中,执行模块705,还用于:
根据所述第一视图元数据名称,确定与所述第一视图元数据名称对应的目标视图元数据;
当确定所述目标视图元数据中包括关联关系信息时,从所述关联关系信息中提取关联表名,以及至少一个关联字段名称;
根据所述关联表名,确定与所述关联表名对应的目标关联表;
根据每一个关联字段名称,在所述目标关联表中确定与所述第一查询数据集合中每一条数据对应的至少一条关联数据;
将每一条数据,以及与每一条数据对应的至少一条关联数据进行拼接,得到第二查询数据集合。
在一些可选的实施方式中,执行模块705,还用于:
从所述目标视图元数据中,提取所述目标视图元数据的类型;
根据所述目标视图元数据的类型,对所述第二查询数据集合中的所有数据进行封装,得到返回结果。
本实施例中的查询业务数据的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的生成查询语句的装置,或者,具有上述图7所示的查询业务数据的装置。
请参阅图8,图8是本发明可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种生成查询语句的方法,其特征在于,所述方法应用于数据库管理***,所述方法包括:
接收保存请求;
从所述保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,其中,所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的;
根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句。
2.根据权利要求1所述的方法,其特征在于,所述根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句,包括:
根据所述视图元数据名称,获取与所述视图元数据名称对应的目标视图元数据;
从所述目标视图元数据中提取所述目标数据库表名;
根据所述目标数据库表名、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成所述预备查询语句。
3.一种查询业务数据的方法,其特征在于,所述方法应用于如权利要求1或2所述的数据库管理***,所述方法包括:
接收查询请求;
对所述查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号;
根据所述第一视图元数据名称,获取与所述第一视图元数据名称对应的第一预备查询语句;
根据所述第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句;
执行所述目标查询语句,获取第一查询数据集合。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述第一视图元数据名称,确定与所述第一视图元数据名称对应的目标视图元数据;
当确定所述目标视图元数据中包括关联关系信息时,从所述关联关系信息中提取关联表名,以及至少一个关联字段名称;
根据所述关联表名,确定与所述关联表名对应的目标关联表;
根据每一个关联字段名称,在所述目标关联表中确定与所述第一查询数据集合中每一条数据对应的至少一条关联数据;
将每一条数据,以及与每一条数据对应的至少一条关联数据进行拼接,得到第二查询数据集合。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述目标视图元数据中,提取所述目标视图元数据的类型;
根据所述目标视图元数据的类型,对所述第二查询数据集合中的所有数据进行封装,得到返回结果。
6.一种生成查询语句的装置,其特征在于,所述装置应用于数据库管理***,所述装置包括:
接收模块,用于接收保存请求;
提取模块,用于从所述保存请求中提取视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,其中,所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息均为用户在视图元数据设计界面中输入的;
生成模块,用于根据所述视图元数据名称、至少一个条件字段,以及与每一个条件字段对应的条件配置信息,生成与所述视图元数据名称对应的预备查询语句。
7.一种查询业务数据的装置,其特征在于,所述装置应用于数据库管理***,所述装置包括:
接收模块,用于接收查询请求;
解析模块,用于对所述查询请求进行解析,得到第一视图元数据名称、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号;
获取模块,用于根据所述第一视图元数据名称,获取与所述第一视图元数据名称对应的第一预备查询语句;
生成模块,用于根据所述第一预备查询语句、至少一个查询参数,以及与每一个查询参数对应的条件值和条件符号,生成目标查询语句;
执行模块,用于执行所述目标查询语句,获取第一查询数据集合。
8.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1或2所述的生成查询语句的方法,或者,执行权利要求3至5中任一项所述的查询业务数据的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1或2所述的生成查询语句的方法,或者,执行权利要求3至5中任一项所述的查询业务数据的方法。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1或2所述的生成查询语句的方法,或者,执行权利要求3至5中任一项所述的查询业务数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410262185.7A CN118193567A (zh) | 2024-03-07 | 2024-03-07 | 生成查询语句和查询业务数据的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410262185.7A CN118193567A (zh) | 2024-03-07 | 2024-03-07 | 生成查询语句和查询业务数据的方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118193567A true CN118193567A (zh) | 2024-06-14 |
Family
ID=91413105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410262185.7A Pending CN118193567A (zh) | 2024-03-07 | 2024-03-07 | 生成查询语句和查询业务数据的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118193567A (zh) |
-
2024
- 2024-03-07 CN CN202410262185.7A patent/CN118193567A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582909B (zh) | 网页自动生成方法、装置、电子设备和存储介质 | |
CN112650766B (zh) | 数据库数据操作的方法、***及服务器 | |
US20030140045A1 (en) | Providing a server-side scripting language and programming tool | |
CN111339041A (zh) | 文件解析入库、文件生成方法及装置 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
EP1777629A1 (en) | Method and apparatus for automatic form filling | |
CN111241182A (zh) | 数据处理方法和装置、存储介质和电子装置 | |
CN111831384A (zh) | 语言切换方法和装置、设备及存储介质 | |
CN111708805A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN112000690B (zh) | 解析结构化操作语句的方法和装置 | |
CN108694172B (zh) | 信息输出方法和装置 | |
CN115576603B (zh) | 一种获取代码片段中的变量值的方法及装置 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN113177391B (zh) | 在流式界面中操作光标重定向方法、计算设备及存储介质 | |
CN118193567A (zh) | 生成查询语句和查询业务数据的方法、装置、设备及介质 | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN113971044A (zh) | 组件文档生成方法、装置、设备及可读存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、***、设备及存储介质 | |
CN118193551A (zh) | 更新数据库表和查询业务数据的方法、装置、设备及介质 | |
CN116226788B (zh) | 一种融合多种数据类型的建模方法及相关设备 | |
CN112130841B (zh) | Sql开发方法、装置及终端设备 | |
CN110795915B (zh) | xml文件批量修改方法、***、设备和计算机可读存储介质 | |
CN115981657A (zh) | 代码生成方法、装置、电子设备及可读介质 | |
CN113961192A (zh) | 代码数据的处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |