CN115587123A - 基于aql检索不同数据库的方法、装置、设备及存储介质 - Google Patents
基于aql检索不同数据库的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115587123A CN115587123A CN202211561548.4A CN202211561548A CN115587123A CN 115587123 A CN115587123 A CN 115587123A CN 202211561548 A CN202211561548 A CN 202211561548A CN 115587123 A CN115587123 A CN 115587123A
- Authority
- CN
- China
- Prior art keywords
- aql
- database
- request
- parameters
- retrieval
- 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
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于AQL检索不同数据库的方法、装置、设备及存储介质,其方法包括:获取AQL检索参数,其中,所述AQL检索参数包括针对目标数据库的查询信息;对所述查询信息进行解析,生成AQL数据源查询请求参数,并将所述AQL数据源查询请求参数转换为数据库请求参数,其中,所述数据库请求参数为所述目标数据库支持的请求参数;根据所述数据库请求参数对所述目标数据库进行请求,获取数据库请求结果,并对所述数据库请求结果进行解析,输出AQL请求结果。本发明提高了检索效率。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种基于AQL检索不同数据库的方法、装置、设备及存储介质。
背景技术
在计算机程序的开发中,经常使用数据库来存储必要数据。数据库的种类繁多,各有优劣,通常一个程序产生或收集的数据需要根据不同的场景使用不同数据库存储,但是不同数据库的查询语言和函数不尽相同。因此开发人员需要在查询时,根据目标数据库的不同,使用不同的查询方式。这种查询方式严重影响了开发人员的数据查询效率。
发明内容
有鉴于此,有必要提供一种基于AQL检索不同数据库的方法、装置、设备及存储介质,用以解决现有技术中使用不同检索方式检索不同数据库的低效率问题。
为了解决上述问题,第一方面,本发明提供一种基于AQL检索不同数据的方法,包括:
获取AQL检索参数,其中,所述AQL检索参数包括针对目标数据库的查询信息;
对所述查询信息进行解析,生成AQL数据源查询请求参数,并将所述AQL数据源查询请求参数转换为数据库请求参数,其中,所述数据库请求参数为所述目标数据库支持的请求参数;
根据所述数据库请求参数对所述目标数据库进行请求,获取数据库请求结果,并对所述数据库请求结果进行解析,输出AQL请求结果。
进一步的,所述查询信息包括数据筛选条件、返回数据种类、数据分组及数据排序中的任一信息。
进一步的,所述AQL检索参数还包括针对目标数据库的数据源连接信息;在对目标数据库进行检索前,所述方法还包括:
根据所述数据源连接信息对所述目标数据库进行校验。
进一步的,所述数据源连接信息包括数据库地址、端口、用户名及密码中的任一信息。
进一步的,所述AQL检索参数还包括针对目标数据库的表信息及表中字段信息;所述将所述AQL数据源查询请求参数转换为数据库请求参数,包括:
基于目标数据库的表信息构造数据库第一请求参数;
基于目标数据库的表中字段信息构造数据库第二请求参数;
将所述数据库第一请求参数、数据库第二请求参数与所述AQL数据源查询请求参数进行拼接,并将拼接后的请求参数转换为所述数据库请求参数。
进一步的,所述方法还包括:
对拼接后的请求参数进行格式或内容的校验。
进一步的,所述根据所述数据库请求参数对所述目标数据库进行请求,包括:
使用预先建立的连接根据所述数据库请求参数对所述目标数据库进行请求。
第二方面,本发明还提供一种基于AQL检索不同数据库的装置,包括:
检索参数获取模块,用于获取AQL检索参数,其中,所述AQL检索参数包括针对目标数据库的查询信息;
请求参数构造模块,用于对所述查询信息进行解析,生成AQL数据源查询请求参数,并将所述AQL数据源查询请求参数转换为数据库请求参数,其中,所述数据库请求参数为所述目标数据库支持的请求参数;
请求结果解析模块,用于根据所述数据库请求参数对所述目标数据库进行请求,获取数据库请求结果,并对所述数据库请求结果进行解析,输出AQL请求结果。
第三方面,本发明还提供一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于AQL检索不同数据库的方法中的步骤。
第四方面,本发明还提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述基于AQL检索不同数据库的方法中的步骤。
采用上述实施例的有益效果是:
本发明通过根据检索时提供的AQL检索参数不同,支持对查询信息进行解析,生成AQL数据源查询请求参数,并进一步将AQL数据源查询请求参数转换为数据库请求参数,即根据输入的统一语法自动生成目标数据库能识别的查询语句;然后基于目标数据库可识别的请求参数对对数据的检索请求,并解析数据库的返回信息,以返回统一格式的结果。使开发人员在复杂多变的业务开发中,可使用简洁、易读的语法检索数据,提高检索效率。
附图说明
图1为本发明提供的基于AQL检索不同数据的方法的一实施例的方法流程图;
图2为本发明提供的基于AQL检索不同数据装置的一实施例的结构示意图;
图3为本发明提供的一种电子设备一实施例的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。此外,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明提供了一种基于AQL检索不同数据库的方法、装置、设备及存储介质,根据检索时提供的数据库连接信息不同,支持根据输入的统一语法自动生成当前数据库能识别的查询语句进行对数据的检索请求,并解析数据库的返回信息,返回统一格式的结果。
在实施例描述之前,对相关词语进行释义:
AQL:alterable query language,指一种变化不同数据库皆可查询的语言。
以下分别对具体实施例进行详细说明:
请参阅图1,图1为本发明提供的本发明提供了一种基于AQL检索不同数据库的方法的一实施例的流程示意图,本发明的一个具体实施例,公开了一种基于AQL检索不同数据库的方法,包括:
步骤S101:获取AQL检索参数,其中,AQL检索参数包括针对目标数据库的查询信息;
步骤S102:对查询信息进行解析,生成AQL数据源查询请求参数,并将AQL数据源查询请求参数转换为数据库请求参数,其中,数据库请求参数为目标数据库支持的请求参数;
步骤S103:根据数据库请求参数对目标数据库进行请求,获取数据库请求结果,并对数据库请求结果进行解析,输出AQL请求结果。
需要说明的是,本发明提供的一种基于AQL检索不同数据库的方法应用在AQL搜索引擎中,该搜索引擎由数据源提供器与查询构造器组成,可以通过仅改变数据源的连接信息,实现相同的请求参数,即可用相同逻辑获取不同数据库数据的效果。
其中,AQL检索参数为AQL搜索引擎规定的请求参数,该参数结构简单易读,具体包含数据源连接信息、表名及查询信息。在针对目标数据库进行检索时,需要获取目标数据库的所有表信息及表字段信息,还应获取针对目标数据库的查询信息。其中,查询信息包括数据筛选条件、返回数据种类、数据分组及数据排序中的任一信息。
在确定查询信息后,查询构造器可以提供根据查询参数、字段信息生成数据库请求参数。具体的,可以对查询信息进行解析,生成AQL数据源查询请求参数,并将AQL数据源查询请求参数转换为数据库请求参数。其中,AQL数据源查询请求参数为AQL搜索引擎规定的查询数据库数据的参数,并且不同数据库的参数是相同。而数据库请求参数指可以通过数据库支持的方式直接访问/请求目标数据库数据的参数,不同数据库的请求方式/参数是不尽相同的。
通过解析AQL检索参数中的查询信息,并将其转换为AQL数据源查询请求参数,目的是将使用者易读的格式,转换为程序易读的格式。然后对AQL数据源查询请求参数进一步解析,拼接为数据库请求参数,使得目标数据库更易识别。
在确定目标数据库支持的数据库请求参数后,数据源提供器可以根据数据库请求参数访问目标数据库并解析结果为AQL请求结果。具体的,可以根据数据库请求参数对目标数据库进行请求,获取数据库请求结果,然后对数据库请求结果进行解析,输出AQL请求结果。其中,数据库请求结果为请求目标数据库后的返回结果,不同数据库的返回结果格式不尽相同。而AQL请求结果指AQL搜索引擎解析数据库请求结果后生成的规定格式的数据。
通过以目标数据库支持的方式,通过数据库请求参数请求目标数据库得到数据库请求结果,然后对数据库请求结果进一步解析,构建AQL请求结果,使得返回格式得以统一。
本发明通过根据检索时提供的AQL检索参数不同,支持对查询信息进行解析,生成AQL数据源查询请求参数,并进一步将AQL数据源查询请求参数转换为数据库请求参数,即根据输入的统一语法自动生成目标数据库能识别的查询语句;然后基于目标数据库可识别的请求参数对对数据的检索请求,并解析数据库的返回信息,以返回统一格式的结果。使开发人员在复杂多变的业务开发中,可使用简洁、易读的语法检索数据,提高检索效率。
在本发明的一个实施例中,AQL检索参数还包括针对目标数据库的数据源连接信息;在对目标数据库进行检索前,方法还包括:
根据数据源连接信息对目标数据库进行校验。
可以理解的是,AQL搜索引擎包括数据源提供器与查询构造器,具体的,在获取AQL检索参数后,可以根据参数中数据源的类型生成对应的数据源提供器,即根据数据源连接信息,生成特定的数据源提供器,其中,数据源连接信息包括数据库地址、端口、用户名及密码中的任一信息。然后由特定的数据源提供器根据数据源连接信息对目标数据库进行校验,以此判断目标数据库是否可以连接。举例而言,当特定数据源提供器获取到参数中的数据源连接信息,如地址、名称、密码时,然后通过http请求带上用户名密码连接该地址,根据请求的结果判断是否连接成功。如果连接成功则执行检索步骤,不成功则报错。
在本发明的一个实施例中,AQL检索参数还包括针对目标数据库的表信息及表中字段信息;将AQL数据源查询请求参数转换为数据库请求参数,包括:
基于目标数据库的表信息构造数据库第一请求参数;
基于目标数据库的表中字段信息构造数据库第二请求参数;
将数据库第一请求参数、数据库第二请求参数与AQL数据源查询请求参数进行拼接,并将拼接后的请求参数转换为数据库请求参数。
可以理解的是,数据源提供器还可以获取目标数据库数据源库层面数据,如数据库中的表,表中字段等。具体的,可以基于目标数据库的表信息构造可以获取目标数据库表信息的数据库第一请求参数,基于目标数据库的表中字段信息构造可以获取目标数据库表中字段信息的数据库第二请求参数。然后将数据库第一请求参数、数据库第二请求参数与AQL数据源查询请求参数进行拼接,并将拼接后的请求参数转换为数据库请求参数。
其中,通过拼接转换后的数据库请求参数不仅可以以目标数据库支持的方式从目标数据库中获取数据,还可以获取目标数据库中的表信息和表中字段信息。此外,在将请求参数进行拼接并转换的过程中,可以结合字段信息对拼接后的请求参数进行格式/内容的校验,以确定请求参数的准确性。
在本发明的一个实施例中,根据数据库请求参数对目标数据库进行请求,包括:
使用预先建立的连接根据数据库请求参数对目标数据库进行请求。
可以理解的是,预先建立的连接为缓存与数据库的连接,在请求目标数据库时可使用已经创建好的连接访问目标数据库。省略连接的创建于请求过程,进一步提高程序性能。
为了更清楚地理解本发明,本发明还提供两个具体实例,该两个实例为在同样的需求下,数据存储在不同的数据库时的检索过程。
实例1:
获取性别是男性的学生们的姓名。
数据存储在IP地址为192.168.215.1,端口为9200的elasticsearch数据库的sutdent表(学生表)。
也就是说本次查询数据库的筛选条件是sex=男(性别是男性),需要返回的结果是student_name(学生姓名)。
1.开发人员准备请求aql检索参数:
Json格式如下(json是一种传递数据的格式):
{
#数据源连接信息
"datasource": {
#类型是es数据库,es是elasticsearch的简称
"type": "es",
#配置信息,地址+端口+用户名密码
"configuration":"{\"url\":\"http://192.168.215.1:9200\",\"username\":\"elastic\",\"password\":\"123456\"}"
},
#表名是学生表
"tableName": "student",
#查询条件性别是男
"where": "sex=男",
#需要返回的字段的名称是student_name学生姓名
"select": {
"includes": [
{
"name": "student_name"
}
]
}
}
2.aql引擎进行数据源提供器生成:
aql引擎判断参数中数据源的类型是es,则生成EsProvider(es数据源提供器)。
3.数据源提供器进行数据源校验:
EsProvider获取到参数中的数据源连接信息中的地址、名称、密码“192.168.215.1:9200 elastic 123456”,然后通过http请求带上用户名密码连接该地址,根据请求的结果判断是否连接成功。如果连接成功则执行后面的步骤,不成功就报错。
4.数据源提供器进行构造字段信息请求(注:4、5及6步骤为查询条件的校验):
EsProvider构造获取student表的所有字段的请求,该请求的形式与参数是es数据库规定的,当前参数是命令:
GET student/_mapping
5.数据源提供器进行连接与请求数据库:
EsProvider使用es规定的请求数据的方式,也就是http请求,带上用户名密码地址与上一步生成的命令请求数据库。
6.数据源提供器进行结果解析与数据建模:
请求结果json格式如下,EsProvider解析该结果,结果为student表有三个字段:年龄(数字类型)、名称(文本类型)、性别(文本类型)。
{
"student": {
"mappings": {
"properties": {
"age": {
"type": "number"
},
"student_name": {
"type": "text"
},
"sex": {
"type": "text"
}
}
}
}
}
7.aql引擎进行查询构造器生成:
aql引擎判断参数中数据源的类型是es,则生成EsQueryProvider(es查询构造器)。
8.查询构造器生成进行AQL检索参数解析校验与建模:
解析过程为:EsQueryProvider解析aql检索参数中的筛选条件,与需要返回字段。
校验过程为:根据前几步获取到的字段信息,发现当前学生表的字段中确实有查询条件中的sex字段。如果没有程序会报错。
建模过程为:将aql检索参数中字符串“sec=男”转换为代码模型,便于代码操作。
9.查询构造器生成进行构造数据库请求参数:
EsQueryProvider解析上一步的代码模型,构造es规定的请求命令,如:
POST student/_search
{
#返回的数据只需要学生姓名
"_source": ["student_name"],
#查询条件是sex=男
"query": {
"term": {
"sex": {
"value": "男"
}
}
}
}
10.数据源提供器进行连接与请求数据库:
EsProvider使用es规定的请求数据的方式,也就是http请求,带上用户名密码地址与上一步生成的命令请求数据库。
11.数据源提供器进行结果解析与数据建模:
请求结果json如下,EsProvider解析该结果,发现有两位学生“张三”,“李四”性别是男,将结果解析形成代码结构:
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 0.18232156,
"hits" : [
{
"_index" : "student",
"_type" : "_doc",
"_id" : "wnVI1YMBn9Yiy3Z5LBdU",
"_score" : 0.18232156,
"_source" : {
"student_name" : "张三"
}
},
{
"_index" : "student",
"_type" : "_doc",
"_id" : "w3VU1YMBn9Yiy3Z51xcb",
"_score" : 0.18232156,
"_source" : {
" student _name" : "李四"
}
}
]
}
}
12.返回结果:
返回“张三”“李四”。
为了体现aql搜索引擎的功能,案例2的场景仅仅数据源不同。
实例2:
获取性别是男性的学生们的姓名。
数据存储在IP地址为10.215.10.1,端口为3306的mysql数据库的sutdent表(学生表)。
也就是说本次查询数据库的筛选条件是sex=男(性别是男性),需要返回的结果是student_name(学生姓名)。
1.开发人员准备请求aql检索参数:
Json格式如下(json是一种传递数据的格式):
{
#数据源连接信息
"datasource": {
#类型是mysql数据库
"type": "mysql",
#配置信息,地址+端口+用户名密码
"configuration":"{\"url\":\"http://10.215.10.1:9200\",\"username\":\"admin\",\"password\":\"123456\"}"
},
#表名是学生表
"tableName": "student",
#查询条件性别是男
"where": "sex=男",
#需要返回的字段的名称是student_name学生姓名
"select": {
"includes": [
{
"name": "student_name"
}
]
}
}
2.aql引擎进行数据源提供器生成:
aql引擎判断参数中数据源的类型是mysql,则生成MysqlProvider(mysql数据源提供器)。
3.数据源提供器进行数据源校验:
MysqlProvider获取到参数中的数据源连接信息中的地址、名称、密码“10.215.10.1:3306 admin 123456”,MysqlProvider会通过JDBC(mysql官方的java数据库连接器)请求带上用户名密码连接该地址,根据请求的结果判断是否连接成功。如果连接成功则执行后面的步骤,不成功就报错。
4.数据源提供器进行构造字段信息请求(注:4、5及6步骤为查询条件的校验):
MysqlProvider构造获取student表的所有字段的请求,该请求的形式可以是jdbc,那么参数是jdbc规定的,如请求参数如下:
databaseMetaData.getColumns( “student”);
5.数据源提供器进行连接与请求数据库:
MysqlProvider使用JDBC,带上用户名密码地址与上一步生成的命令请求数据库。
6.数据源提供器进行结果解析与数据建模
下面是jdbc返回的字段信息,有student_name、sex、age三个字段:
“student_name”->{TableField@16034}
“sex”->{TableField@16033}
“age”->{TableField@16035}
7.aql引擎进行查询构造器生成:
aql引擎判断参数中数据源的类型是mysql,则生成MysqlQueryProvider(mysql查询构造器)。
8.查询构造器生成进行AQL检索参数解析校验与建模:
解析过程为:MysqlQueryProvider解析aql检索参数中的筛选条件,与需要返回字段。
校验过程为:根据前几步获取到的字段信息,发现当前学生表的字段中确实有查询条件中的sex字段。如果没有程序会报错。
建模过程为:将aql检索参数中字符串“sec=男”转换为代码模型,便于代码操作。
9.查询构造器生成进行构造数据库请求参数:
MysqlQueryProvider解析上一步的代码模型,构造mysql规定的请求命令,如:
select student_name from beluga.student where sex='男'
10.数据源提供器进行连接与请求数据库:
MysqlProvider使用JDBC的方式,带上用户名密码地址与上一步生成的命令请求数据库。
11.数据源提供器进行结果解析与数据建模:
请求结果如下,MysqlProvider解析该结果,发现有两位学生“张三”,“李四”性别是男,将结果解析形成代码结构:
List={Linkedlist@15939}size=2
0={String[1] @15951}
0=“张三”
1={String[1] @15952}
0=“李四”
12.返回结果:
返回“张三”“李四”。
可见,在同样的需求下,数据存储在不同的数据库时,代码请求数据库的形式、参数完全不同,但使用aql引擎,开发人员只需要改变aql引擎的入参中的数据源连接信息,不用关心具体如何请求数据库和解析结果。大大提高了检索效率。
本发明提供一种基于AQL检索不同数据库的方法,根据检索时提供的数据库连接信息不同,支持根据输入的统一语法自动生成当前数据库能识别的查询语句进行对数据的检索请求,并解析数据库的返回信息,返回统一格式的结果。使开发人员在复杂多变的业务开发中,可使用简洁、易读的语法检索数据,不用关心业务底层数据库种类带来的语法差异,并且程序开发前中期需要切换数据库时业务代码也不需要修改。
为了更好实施本发明实施例中的基于AQL检索不同数据的方法,在基于AQL检索不同数据的方法基础之上,对应的,请参阅图2,图2为本发明提供的基于AQL检索不同数据装置的一实施例的结构示意图,本发明实施例提供了一种基于AQL检索不同数据装置200,包括:
检索参数获取模块201,用于获取AQL检索参数,其中,AQL检索参数包括针对目标数据库的查询信息;
请求参数构造模块202,用于对查询信息进行解析,生成AQL数据源查询请求参数,并将AQL数据源查询请求参数转换为数据库请求参数,其中,数据库请求参数为目标数据库支持的请求参数;
请求结果解析模块203,用于根据数据库请求参数对目标数据库进行请求,获取数据库请求结果,并对数据库请求结果进行解析,输出AQL请求结果。
这里需要说明的是:上述实施例提供的装置200可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述方法实施例中的相应内容,此处不再赘述。
基于上述基于AQL检索不同数据的方法,本发明实施例还相应的提供一种电子设备,包括:处理器和存储器以及存储在存储器中并可在处理器上执行的计算机程序;处理器执行计算机程序时实现如上述各实施例的基于AQL检索不同数据的方法中的步骤。
图3中示出了适于用来实现本发明实施例的电子设备300的结构示意图。本发明实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文的处理装置301,存储器可以包括下文中的只读存储器(ROM)302、随机访问存储器(RAM)303以及存储装置308中的至少一项,具体如下所示:
如图3所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM302以及RAM303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM302被安装。在该计算机程序被处理装置301执行时,执行本发明实施例的方法中限定的上述功能。
基于上述基于AQL检索不同数据的方法,本发明实施例还相应的提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如上述各实施例的基于AQL检索不同数据的方法中的步骤。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于AQL检索不同数据库的方法,其特征在于,包括:
获取AQL检索参数,其中,所述AQL检索参数包括针对目标数据库的查询信息;
对所述查询信息进行解析,生成AQL数据源查询请求参数,并将所述AQL数据源查询请求参数转换为数据库请求参数,其中,所述数据库请求参数为所述目标数据库支持的请求参数;
根据所述数据库请求参数对所述目标数据库进行请求,获取数据库请求结果,并对所述数据库请求结果进行解析,输出AQL请求结果。
2.根据权利要求1所述的基于AQL检索不同数据库的方法,其特征在于,所述查询信息包括数据筛选条件、返回数据种类、数据分组及数据排序中的任一信息。
3.根据权利要求1所述的基于AQL检索不同数据库的方法,其特征在于,所述AQL检索参数还包括针对目标数据库的数据源连接信息;在对目标数据库进行检索前,所述方法还包括:
根据所述数据源连接信息对所述目标数据库进行校验。
4.根据权利要求3所述的基于AQL检索不同数据库的方法,其特征在于,所述数据源连接信息包括数据库地址、端口、用户名及密码中的任一信息。
5.根据权利要求1所述的基于AQL检索不同数据库的方法,其特征在于,所述AQL检索参数还包括针对目标数据库的表信息及表中字段信息;所述将所述AQL数据源查询请求参数转换为数据库请求参数,包括:
基于目标数据库的表信息构造数据库第一请求参数;
基于目标数据库的表中字段信息构造数据库第二请求参数;
将所述数据库第一请求参数、数据库第二请求参数与所述AQL数据源查询请求参数进行拼接,并将拼接后的请求参数转换为所述数据库请求参数。
6.根据权利要求5所述的基于AQL检索不同数据库的方法,其特征在于,所述方法还包括:
对拼接后的请求参数进行格式或内容的校验。
7.根据权利要求1所述的基于AQL检索不同数据库的方法,其特征在于,所述根据所述数据库请求参数对所述目标数据库进行请求,包括:
使用预先建立的连接根据所述数据库请求参数对所述目标数据库进行请求。
8.一种基于AQL检索不同数据库的装置,其特征在于,包括:
检索参数获取模块,用于获取AQL检索参数,其中,所述AQL检索参数包括针对目标数据库的查询信息;
请求参数构造模块,用于对所述查询信息进行解析,生成AQL数据源查询请求参数,并将所述AQL数据源查询请求参数转换为数据库请求参数,其中,所述数据库请求参数为所述目标数据库支持的请求参数;
请求结果解析模块,用于根据所述数据库请求参数对所述目标数据库进行请求,获取数据库请求结果,并对所述数据库请求结果进行解析,输出AQL请求结果。
9.一种电子设备,其特征在于,包括存储器和处理器,其中,所述存储器,用于存储程序;所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述权利要求1至7中任一项所述基于AQL检索不同数据库的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述权利要求1至7中任一项所述基于AQL检索不同数据库的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211561548.4A CN115587123B (zh) | 2022-12-07 | 2022-12-07 | 基于aql检索不同数据库的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211561548.4A CN115587123B (zh) | 2022-12-07 | 2022-12-07 | 基于aql检索不同数据库的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115587123A true CN115587123A (zh) | 2023-01-10 |
CN115587123B CN115587123B (zh) | 2023-09-26 |
Family
ID=84782970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211561548.4A Active CN115587123B (zh) | 2022-12-07 | 2022-12-07 | 基于aql检索不同数据库的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115587123B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080228716A1 (en) * | 2007-03-13 | 2008-09-18 | Dettinger Richard D | System and method for accessing unstructured data using a structured database query environment |
CN107818127A (zh) * | 2017-09-09 | 2018-03-20 | 国网浙江省电力公司 | 一种用于多源数据的查询方法及系统 |
CN108959437A (zh) * | 2018-06-12 | 2018-12-07 | 深圳中兴网信科技有限公司 | 一种医疗数据处理方法、系统及医疗服务器 |
CN112905620A (zh) * | 2019-11-19 | 2021-06-04 | 北京沃东天骏信息技术有限公司 | 数据查询方法及装置、电子设备、存储介质 |
-
2022
- 2022-12-07 CN CN202211561548.4A patent/CN115587123B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080228716A1 (en) * | 2007-03-13 | 2008-09-18 | Dettinger Richard D | System and method for accessing unstructured data using a structured database query environment |
CN107818127A (zh) * | 2017-09-09 | 2018-03-20 | 国网浙江省电力公司 | 一种用于多源数据的查询方法及系统 |
CN108959437A (zh) * | 2018-06-12 | 2018-12-07 | 深圳中兴网信科技有限公司 | 一种医疗数据处理方法、系统及医疗服务器 |
CN112905620A (zh) * | 2019-11-19 | 2021-06-04 | 北京沃东天骏信息技术有限公司 | 数据查询方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115587123B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2012271085B2 (en) | Recommending data enrichments | |
CN109036397B (zh) | 用于呈现内容的方法和装置 | |
CN110162408B (zh) | 一种数据处理方法、装置、设备和机器可读介质 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN111158795A (zh) | 报表生成方法、装置、介质及电子设备 | |
WO2019232980A1 (zh) | 节点配置方法及装置、计算机可读存储介质和电子设备 | |
CN113448562B (zh) | 一种逻辑代码自动生成方法、装置和电子设备 | |
CN104636464A (zh) | 访问文件的方法和装置 | |
CN111338944B (zh) | 远程过程调用rpc接口测试方法、装置、介质及设备 | |
US11252257B2 (en) | Dynamic rest access | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
US10019519B2 (en) | Methods and systems for utilizing global entities in software applications | |
CN112905620A (zh) | 数据查询方法及装置、电子设备、存储介质 | |
US20180314683A1 (en) | Method and device for processing natural language | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
CN112256252B (zh) | 接口生成方法、装置、存储介质及电子设备 | |
CN115587123B (zh) | 基于aql检索不同数据库的方法、装置、设备及存储介质 | |
US20190095538A1 (en) | Method and system for generating content from search results rendered by a search engine | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
CN109857838B (zh) | 用于生成信息的方法和装置 | |
CN113468207A (zh) | 一种查询方法、装置、设备及存储介质 | |
KR100740690B1 (ko) | 컨텐츠 검색 시스템을 탑재한 정보단말기 | |
CN113609309B (zh) | 知识图谱构建方法、装置、存储介质及电子设备 | |
CN115481137B (zh) | 基于sql语句的软件生成方法、装置、设备及介质 | |
CN113704020B (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 |