CN113760948A - 一种数据查询的方法及装置 - Google Patents

一种数据查询的方法及装置 Download PDF

Info

Publication number
CN113760948A
CN113760948A CN202110129069.4A CN202110129069A CN113760948A CN 113760948 A CN113760948 A CN 113760948A CN 202110129069 A CN202110129069 A CN 202110129069A CN 113760948 A CN113760948 A CN 113760948A
Authority
CN
China
Prior art keywords
field
query
data
sql statement
condition
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
Application number
CN202110129069.4A
Other languages
English (en)
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.)
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun Information Technology 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 Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN202110129069.4A priority Critical patent/CN113760948A/zh
Publication of CN113760948A publication Critical patent/CN113760948A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据查询的方法及装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。该实施方式提高了数据查询方法的开发效率,也提高了数据查询的效率。

Description

一种数据查询的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据查询的方法及装置。
背景技术
为了提高数据查询的开发速度,在互联网项目中通常使用持久层框架来支持数据的查询。
在持久层框架中,一般通过配置SQL语句,并生成数据访问层的方法,来实现数据的查询。然而,数据查询需求是不断更新的,采用上述方法实现数据查询时,每更新一次查询需求均需开发人员修改SQL语句,如数据库中每新增一张表、一个查询字段或一个查询条件,均需开发人员相应修改SQL语句,并且在修改SQL语句后,还需重新进行编码、测试和上线等过程,这导致数据查询方法的开发效率较低。
发明内容
有鉴于此,本发明实施例提供一种数据查询的方法及装置,能够根据数据查询请求中待查询的业务数据表的第一标识信息、待查询字段和查询条件,自动生成目标SQL语句,并进一步通过自动生成的目标SQL语句进行数据查询。由此实现根据实时的数据查询请求自动生成目标SQL语句,而无需开发人员根据数据库中的数据表、查询字段或查询条件的更改来人工修改SQL语句,也无需再根据修改的SQL语句重新进行编码、测试和上线等过程,从而提高了数据查询方法的开发效率,也提高了数据查询的效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据查询的方法。
本发明实施例的一种数据查询的方法包括:获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;
根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;
根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
可选地,所述生成目标SQL语句,包括:
根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;
分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQL语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
可选地,当所述待查询字段为多个时,所述生成与所述查询条件对应的条件SQL语句,包括:
在每两个所述待查询字段之间插入分隔符,以通过分隔符将多个所述待查询字段进行拼接,利用拼接后的所述待查询字段替换所述默认查询字段。
可选地,所述查询条件包括以下任意一个或多个:所述待查询字段的数据类型、数据条件匹配方式和条件值。
可选地,当所述查询条件包括待查询字段的数据类型,所述第一配置表还包括各个数据类型分别对应的条件SQL语句时,
根据所述待查询字段的数据类型,从所述第一配置表中确定与所述数据类型对应的条件SQL语句;
将确定出的所述条件SQL语句替换所述默认条件字段,生成所述目标SQL语句。
可选地,该方法还包括:
当获取新增查询条件时,在所述第一配置表中添加所述新增查询条件以及所述新增查询条件对应的条件SQL语句。
可选地,在所述生成目标SQL语句之前,还包括:
根据所述数据查询请求,调用第二配置表;所述第二配置表包括:一个或多个业务数据表的第二标识信息、以及所述第二标识信息与业务字段的映射关系;
从所述第二配置表中确定与所述第一标识信息相同的第二标识信息,并根据所述映射关系,确定所述第二标识信息对应的业务字段;
根据确定出的业务字段,校验所述待查询字段是否合法,如果是,执行所述根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句。
可选地,所述第二配置表还包括:所述业务字段的别名、以及所述别名分别与所述业务字段和所述第二标识信息的映射关系;当根据所述第二配置表,确定出所述待查询字段为业务字段的别名时,
根据所述映射关系,确定所述待查询字段对应的业务字段,并根据确定出的业务字段,生成所述目标SQL语句。
可选地,当所述数据库中的业务数据表和/或所述业务数据表中的业务字段更新时,在所述第二配置表中对应更新所述第二标识和/或所述映射关系。
可选地,该方法还包括:
根据发送所述数据查询请求的查询端所需的数据格式,对查询到的所述业务数据进行格式转换,并将格式转换后的业务数据返回给所述查询端。
为实现上述目的,根据本发明实施例的又一方面,提供了一种数据查询的装置。
本发明实施例的一种数据查询的装置包括:请求获取模块、SQL语句生成模块和查询模块;其中,
所述请求获取模块,用于获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;
所述SQL语句生成模块,用于根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;
所述查询模块,用于根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
可选地,所述SQL语句生成模块,用于根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQ L语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
为实现上述目的,根据本发明实施例的又一方面,提供了一种数据查询的电子设备。
本发明实施例的一种AA的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据查询的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据查询的方法。
上述发明中的一个实施例具有如下优点或有益效果:根据数据查询请求中待查询的业务数据表的第一标识信息、待查询字段和查询条件,自动生成目标SQL语句,并进一步通过自动生成的目标SQL语句进行数据查询。由此实现了根据实时的数据查询请求自动生成目标SQL语句,而无需开发人员根据数据库中的数据表、查询字段或查询条件的更改来人工修改SQL语句,也无需再根据修改的SQL语句重新进行编码、测试和上线等过程,从而提高了数据查询方法的开发效率,也提高了数据查询的效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种数据查询的方法的主要步骤的示意图;
图2是根据本发明实施例的一种数据查询的装置的实力示例性架构图;
图3是根据本发明实施例的另一种数据查询的方法的主要步骤的示意图;
图4是根据本发明实施例的一种生成目标SQL语句的主要步骤的示意图;
图5是根据本发明实施例的一种数据查询的装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的一种数据查询的方法的主要步骤的示意图。
如图1所示,本发明实施例的一种数据查询的方法主要包括以下步骤S101至步骤S103:
步骤S101:获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件。
实现本发明实施例提供的数据查询方法的装置架构图可如图2所示,利用图2所示的架构实现的本发明实施例提供的数据查询方法的主要步骤可如图3所示。参考图2和图3,实现数据查询方法的装置可对外提供查询接口,则数据查询端可调用该查询接口,以发送数据查询请求,数据查询请求中携带的入参包括业务数据表的第一标识信息、待查询字段和查询条件。其中,查询接口可以包括查询单条记录接口和查询多条记录接口。
在java中,单条记录接口的定义可如下:Map<String,Object>select One(StringtableName,List<String>columns,List<Condition>where Cond ition)。查询多条记录接口可定义如下:List<Map<String,Object>>select List(String tableName,List<String>columns,List<Condition>where Cond ition)。
其中,数据查询请求中携带的入参详情可如下表1所示:
表1
Figure BDA0002924535810000071
其中,以Java类为例,表1中的Condition对象的字段定义可如下表2所示,该字段可用于组装目标SQL语句中的条件,其格式可以为待查询字段=字段值。当然,此处的“=”仅为一种查询条件的操作匹配符,在不同查询条件下可以有不同的操作匹配符,如大于或小于等。字段值即为查询条件所对应的筛选条件值。
表2
Figure BDA0002924535810000081
在表2中,OperatorType枚举对象(数据条件匹配方式)对应上述操作匹配符,其为SQL语句中一个条件中匹配操作的类型,其具体的定义及含义可如下表3所示。
表3
Figure BDA0002924535810000082
Figure BDA0002924535810000091
在本发明实施例中,在获取到数据查询请求之后,在生成目标SQL语句之前,还可以包括:根据所述数据查询请求,调用第二配置表;所述第二配置表包括:一个或多个业务数据表的第二标识信息、以及所述第二标识信息与业务字段的映射关系;从所述第二配置表中确定与所述第一标识信息相同的第二标识信息,并根据所述映射关系,确定所述第二标识信息对应的业务字段;根据确定出的业务字段,校验所述待查询字段是否合法,如果是,执行所述根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句。
其中,第二配置表即为图2中的配置表,业务数据表即为图2中的业务表。第二配置表中包括一个或多个业务数据表的第二标识信息,该第二标识信息可以是业务数据表的表名。例如,某存储有用户信息的业务数据表的表名为t_user,则第二标识信息可以为该t_user,该业务数据表的具体信息可以如下表4所示:
表4
Figure BDA0002924535810000092
Figure BDA0002924535810000101
第二配置表用于存储一个或多个业务数据表的第二标识信息、以及所述第二标识信息与业务字段的映射关系,其中,第二配置表的表结构和字段可如:5所示。并且,在配置第二配置表时,也可相应生成第二配置表的表名,例如,下表5可命名为t_table_config。
表5
Figure BDA0002924535810000102
在第二配置表中配置一条数据,即代表相应业务数据表和字段建立了一条映射关系。例如,为了支持业务数据表t_user的动态化查询,需要将上表1(业务数据表t_user)对应的映射关系配置到第二配置表t_table_config中,配置数据的示例可如下表6所示。
表6
Figure BDA0002924535810000103
Figure BDA0002924535810000111
从而可以通过调用第二配置表,确定出系统中接入了哪些业务数据表,以及这些业务数据表可哪些字段建立了映射关系。当数据库中的业务数据表和/或业务字段有所更新时,可相应更新第二配置表中的映射关系,即可通过调用第二配置表获取最新的映射关系。
在调用第二配置表时,可通过本发明实施例提供的数据查询装置中的表/字段/映射配置组件对第二配置表进行调用。相应地,当需要对第二配置表进行新增和修改等更新操作时,也可通过图2中的表/字段/映射配置组件调用第二配置表,以完成对第二配置表的配置。
在获取到数据查询请求后,根据调用的第二配置表,在第二配置表中确定与数据查询请求的入参的第一标识信息相同的第二标识信息。以查询业务数据表t_user为例,可通过select id,table_name,column,data_type from t_table_config where table_name=’t_user’在第二配置表中查询到t_user配置的所有字段名(业务字段)和数据类型。然后,通过图2中的接口参数合法性检查器,根据确定出的业务字段,确定数据查询请求包括的待查询字段是否合法。例如,通过查询第二配置表中的table_name字段是否存在与第一标识信息相同的第二标识信息,来校验第一标识信息是否合法。另外,可通过查询第二配置表table_name=’XXX’得到的业务字段列表,进而验证待查询字段是否合法。此外,还可通过查询第二配置表table_name=’XXX’得到的业务字段列表,验证待查询字段中的条件字段名是否正确。另外,还可进一步校验条件中的匹配操作类型是否符合字段的数据类型,例如like匹配只能支持VARCHAR数据类型,>=、>、<=、<只能支持int类型等。在入参均验证合法的情况下,才可进一步根据入参生成目标SQL语句。
步骤S102:根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句。
在本发明实施例中,可根据第一配置表和默认SQL语句来生成目标SQL语句,具体地,在此实施例中,根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQL语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
在生成目标SQL语句时,可采用图2中的SQL生成器来生成目标SQL语句。具体地,可预先存储如表7所示的默认SQL语句。其中,字段名1和字段名为默认查询字段,“表名”为默认表名,条件一、条件二、条件三和条件四为默认条件字段,select、from和where为连接字段。
表7
Figure BDA0002924535810000121
在生成目标SQL语句时,可以先根据数据查询请求的入参组装成条件SQL语句,然后再将入参中的第一标识信息和待查询字段替换默认SQL语句中的默认表名和默认查询字段,以生成目标SQL语句。在生成条件SQL语句时,可根据第一配置表中的一个或多个查询条件分别对应的SQL语句,确定出与数据查询请求的查询条件相对应的条件SQL语句。另外,也可根据表2和表3所示的条件字段,根据数据查询请求中的查询条件,组装出条件SQL语句。
在本发明一个实施方式中,当所述待查询字段为多个时,所述生成与所述查询条件对应的条件SQL语句,包括:在每两个所述待查询字段之间插入分隔符,以通过分隔符将多个所述待查询字段进行拼接,利用拼接后的所述待查询字段替换所述默认查询字段。例如,待查询字段为id、name和sex时,分隔符可采用英文逗号,则将这三个待查询字段拼接为“id,name,sex”的形式,然后利用拼接后的“id,name,sex”替换默认SQL语句中的“字段名1,字段名2,…”。其次,还可用入参中的第一标识信息替换默认表名,如利用入参中的“t_user”替换默认字段中的“表名”,则替换后的默认SQL语句如下表8所示。
表8
Figure BDA0002924535810000131
值得注意的是,在替换待查询字段时,若数据查询请求的入参中的待查询字段为第二配置表中的业务字段的别名,则可根据第二配置表确定出该别名对应的业务字段,以利用业务字段生成目标SQL语句,从而便于在数据库中进行数据查询。具体地,在本发明一个实施例中,所述第二配置表还包括:所述业务字段的别名、以及所述别名分别与所述业务字段和所述第二标识信息的映射关系;当根据所述第二配置表,确定出所述待查询字段为业务字段的别名时,根据所述映射关系,确定所述待查询字段对应的业务字段,并根据确定出的业务字段,生成所述目标SQL语句。
另外,如上表2和表3所示,查询条件可以包括以下任意一个或多个:所述待查询字段的数据类型、数据条件匹配方式和条件值。在本发明一个实施例中,当所述查询条件包括待查询字段的数据类型,所述第一配置表还包括各个数据类型分别对应的条件SQL语句时,根据所述待查询字段的数据类型,从所述第一配置表中确定与所述数据类型对应的条件SQL语句;将确定出的所述条件SQL语句替换所述默认条件字段,生成所述目标SQL语句。
例如,对于数据类型:VARCHAR和非VARCHAR类型,其生成条件SQL略有不同。以查询条件的字段名为a,值为123为例,对于VARCHAR和非VARCHAR类型,其生成的条件SQL如下表9(表9为第一配置表的部分示例)所示,从表9可以看出,VARCHAR数据类型生成的条件SQL带单引号,而非VARCHAR类型生成的条件SQL不带单引号。
表9
Figure BDA0002924535810000141
Figure BDA0002924535810000151
在生成条件SQL语句后,将条件SQL语句替换如表7所示的默认SQL语句中的默认条件字段,例如,当生成的条件SQL语句为a=123时,利用其替换默认条件字段“条件一and条件二and条件三and条件四and…”,生成的目标SQL语句可如下表10所示。上述生成目标SQL语句的过程的主要步骤可如图4所示。
表10
Figure BDA0002924535810000152
上述根据第一配置表生成目标SQL语句的方式,当有新增查询条件时,在第一配置表中对应添加新增查询条件、以及与新增查询条件对应的条件SQL语句,则在数据查询请求的入参中有新增查询条件时,即可生成对应的条件SQL语句。而无需开发人员采用人工方式修改相应SQL语句,更无需重新编码、测试和上线等过程,由此提高数据查询方法的开发效率。
步骤S103:根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
在生成目标SQL语句后,可向数据库发送JDBC(Java Database Connectivity,Java数据库连接)请求,以利用目标SQL语句在数据库的多个业务数据表中查找与第一标识对应的业务数据表,并根据查询条件从查找到的业务数据表中确定与待查询字段相对应的业务数据,得到JDBC数据结果集。
由于JDBC数据结果集为ResultSet类型,需要将ResultSet类型中包含的数据最终解析转换成以Map<String,Object>为行的map对象数据。也就是说,在本发明实施例中,根据发送所述数据查询请求的查询端所需的数据格式,对查询到的所述业务数据进行格式转换,并将格式转换后的业务数据返回给所述查询端。
例如,可通过图2中的结果集对象解析器调用ResultSet.getObject(index)方法得到待查询字段对应的数据,参数index为字段在返回行的列号,例如查询id,name,sex三个字段,那么getObject(1)得到id字段的值,getObject(2)得到name字段的值,getObject(3)得到sex字段的值。解析转换字段表达式的规则表可如下表11所示:
表11
Figure BDA0002924535810000161
Figure BDA0002924535810000171
其中数据库字段对应的java字段类型,可以从表/字段/映射配置表中获得。具体转换时,代码中需要根据不同的java类型调用表10第二列给出的表达式获得值,该表达式考虑了字段为null的情况。并将解析转换后的值放入到map对象中,放入时以字段名作为键,转换后的值作为值放入。最后,返回给接口调用者即可。
例如,查询单条数据接口返回值的Java对象类型:Map<String,Object>,map是一个键值对的数据类型。可以放多个键值对数据,每个键值对数据即为一个待查询字段对应的业务数据,其中用字段名作为键,查询到的字段值作为值,放在map中。查询多条据接口返回值的Java对象类型:List<Map<String,Object>>,是一个列表,列表中的每个元素即为一个Map<String,Object>对象,代表了一条业务数据。
比如,通过目标SQL语句:select id,name,birth_day from t_user where id=1查询到用户ID为1的用户数据,假设查询到的用户name=张三,birth_day=2000-01-01。name返回的一行数据,即map中存放的数据如下表12所示:
表12
Figure BDA0002924535810000172
Figure BDA0002924535810000181
根据本发明实施例的一种数据查询的方法可以看出,根据数据查询请求中待查询的业务数据表的第一标识信息、待查询字段和查询条件,自动生成目标SQL语句,并进一步通过自动生成的目标SQL语句进行数据查询。由此实现了根据实时的数据查询请求自动生成目标SQL语句,而无需开发人员根据数据库中的数据表、查询字段或查询条件的更改来人工修改SQL语句,也无需再根据修改的SQL语句重新进行编码、测试和上线等过程,从而提高了数据查询方法的开发效率,也提高了数据查询的效率。并且,当新增业务数据表和/或新增业务字段时,将新增业务数据表的第二标识信息和/或新增业务字段添加到第二配置表(如t_table_config),即可支持业务数据的查询,最终实现了可复用的单表动态查询装置,提高了研发效率,减少项目的开发周期。
图5是根据本发明实施例的一种数据查询的装置的主要模块的示意图。
如图5所示,本发明实施例的一种数据查询的装置500包括:请求获取模块501、SQL语句生成模块502和查询模块503;其中,
所述请求获取模块501,用于获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;
所述SQL语句生成模块502,用于根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;
所述查询模块503,用于根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
在本发明一个实施例中,所述SQL语句生成模块502,用于根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQL语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
在本发明一个实施例中,当所述待查询字段为多个时,所述SQL语句生成模块502,用于在每两个所述待查询字段之间插入分隔符,以通过分隔符将多个所述待查询字段进行拼接,利用拼接后的所述待查询字段替换所述默认查询字段。
在本发明一个实施例中,所述查询条件包括以下任意一个或多个:所述待查询字段的数据类型、数据条件匹配方式和条件值。
在本发明一个实施例中,当所述查询条件包括待查询字段的数据类型,所述第一配置表还包括各个数据类型分别对应的条件SQL语句时,所述SQL语句生成模块502,用于根据所述待查询字段的数据类型,从所述第一配置表中确定与所述数据类型对应的条件SQL语句;将确定出的所述条件SQL语句替换所述默认条件字段,生成所述目标SQL语句。
在本发明一个实施例中,数据查询的装置500还包括更新模块504;其中,所述更新模块504,用于当获取新增查询条件时,在所述第一配置表中添加所述新增查询条件以及所述新增查询条件对应的条件SQL语句。
在本发明一个实施例中,所述SQL语句生成模块502,用于根据所述数据查询请求,调用第二配置表;所述第二配置表包括:一个或多个业务数据表的第二标识信息、以及所述第二标识信息与业务字段的映射关系;从所述第二配置表中确定与所述第一标识信息相同的第二标识信息,并根据所述映射关系,确定所述第二标识信息对应的业务字段;根据确定出的业务字段,校验所述待查询字段是否合法,如果是,执行所述根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句。
在本发明一个实施例中,所述第二配置表还包括:所述业务字段的别名、以及所述别名分别与所述业务字段和所述第二标识信息的映射关系;当根据所述第二配置表,确定出所述待查询字段为业务字段的别名时,所述SQL语句生成模块502,用于根据所述映射关系,确定所述待查询字段对应的业务字段,并根据确定出的业务字段,生成所述目标SQL语句。
在本发明一个实施例中,所述更新模块504,还用于当所述数据库中的业务数据表和/或所述业务数据表中的业务字段更新时,在所述第二配置表中对应更新所述第二标识和/或所述映射关系。
在本发明一个实施例中,所述查询模块503,用于根据发送所述数据查询请求的查询端所需的数据格式,对查询到的所述业务数据进行格式转换,并将格式转换后的业务数据返回给所述查询端。
根据本发明实施例的一种数据查询的装置可以看出,根据数据查询请求中待查询的业务数据表的第一标识信息、待查询字段和查询条件,自动生成目标SQL语句,并进一步通过自动生成的目标SQL语句进行数据查询。由此实现了根据实时的数据查询请求自动生成目标SQL语句,而无需开发人员根据数据库中的数据表、查询字段或查询条件的更改来人工修改SQL语句,也无需再根据修改的SQL语句重新进行编码、测试和上线等过程,从而提高了数据查询方法的开发效率,也提高了数据查询的效率。并且,当新增业务数据表和/或新增业务字段时,将新增业务数据表的第二标识信息和/或新增业务字段添加到第二配置表(如t_table_config),即可支持业务数据的查询,最终实现了可复用的单表动态查询装置,提高了研发效率,减少项目的开发周期。
图6示出了可以应用本发明实施例的一种数据查询的方法或一种数据查询的装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的一种数据查询的方法一般由服务器605执行,相应地,一种数据查询的装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求获取模块、SQL语句生成模块和查询模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,请求获取模块还可以被描述为“获取数据查询请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
根据本发明实施例的技术方案,根据数据查询请求中待查询的业务数据表的第一标识信息、待查询字段和查询条件,自动生成目标SQL语句,并进一步通过自动生成的目标SQL语句进行数据查询。由此实现根据实时的数据查询请求自动生成目标SQL语句,而无需开发人员根据数据库中的数据表、查询字段或查询条件的更改来人工修改SQL语句,也无需再根据修改的SQL语句重新进行编码、测试和上线等过程,从而提高了数据查询方法的开发效率,也提高了数据查询的效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (14)

1.一种数据查询的方法,其特征在于,包括:
获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;
根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;
根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
2.根据权利要求1所述的方法,其特征在于,所述生成目标SQL语句,包括:
根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;
分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQL语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
3.根据权利要求2所述的方法,其特征在于,
当所述待查询字段为多个时,所述生成与所述查询条件对应的条件SQL语句,包括:
在每两个所述待查询字段之间插入分隔符,以通过分隔符将多个所述待查询字段进行拼接,利用拼接后的所述待查询字段替换所述默认查询字段。
4.根据权利要求2所述的方法,其特征在于,
所述查询条件包括以下任意一个或多个:所述待查询字段的数据类型、数据条件匹配方式和条件值。
5.根据权利要求4所述的方法,当所述查询条件包括待查询字段的数据类型,所述第一配置表还包括各个数据类型分别对应的条件SQL语句时,
根据所述待查询字段的数据类型,从所述第一配置表中确定与所述数据类型对应的条件SQL语句;
将确定出的所述条件SQL语句替换所述默认条件字段,生成所述目标SQL语句。
6.根据权利要求2所述的方法,其特征在于,还包括:
当获取新增查询条件时,在所述第一配置表中添加所述新增查询条件以及所述新增查询条件对应的条件SQL语句。
7.根据权利要求1所述的方法,其特征在于,在所述生成目标SQL语句之前,还包括:
根据所述数据查询请求,调用第二配置表;所述第二配置表包括:一个或多个业务数据表的第二标识信息、以及所述第二标识信息与业务字段的映射关系;
从所述第二配置表中确定与所述第一标识信息相同的第二标识信息,并根据所述映射关系,确定所述第二标识信息对应的业务字段;
根据确定出的业务字段,校验所述待查询字段是否合法,如果是,执行所述根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句。
8.根据权利要求7所述的方法,其特征在于,所述第二配置表还包括:所述业务字段的别名、以及所述别名分别与所述业务字段和所述第二标识信息的映射关系;当根据所述第二配置表,确定出所述待查询字段为业务字段的别名时,
根据所述映射关系,确定所述待查询字段对应的业务字段,并根据确定出的业务字段,生成所述目标SQL语句。
9.根据权利要求7所述的方法,其特征在于,
当所述数据库中的业务数据表和/或所述业务数据表中的业务字段更新时,在所述第二配置表中对应更新所述第二标识和/或所述映射关系。
10.根据权利要求1所述的方法,其特征在于,还包括:
根据发送所述数据查询请求的查询端所需的数据格式,对查询到的所述业务数据进行格式转换,并将格式转换后的业务数据返回给所述查询端。
11.一种数据查询的装置,其特征在于,包括:请求获取模块、SQL语句生成模块和查询模块;其中,
所述请求获取模块,用于获取数据查询请求,所述数据查询请求包括:待查询的业务数据表的第一标识信息、待查询字段和查询条件;
所述SQL语句生成模块,用于根据所述第一标识信息、所述待查询字段和所述查询条件,生成目标SQL语句;
所述查询模块,用于根据所述目标SQL语句,在数据库中确定与所述第一标识信息对应的业务数据表,并根据所述查询条件从所述业务数据表中确定与所述待查询字段相对应的业务数据。
12.根据权利要求11所述的装置,其特征在于,
所述SQL语句生成模块,用于根据第一配置表以及所述查询条件,生成与所述查询条件对应的条件SQL语句;其中,所述第一配置表包括:一个或多个查询条件分别对应的条件SQL语句;分别利用所述条件SQL语句、所述第一标识信息和所述待查询字段替换默认SQL语句中的默认条件字段、默认表名和默认查询字段;其中,所述默认SQL语句包括:所述默认条件字段、所述默认表名、所述默认查询字段和连接字段。
13.一种数据查询的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一所述的方法。
CN202110129069.4A 2021-01-29 2021-01-29 一种数据查询的方法及装置 Pending CN113760948A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110129069.4A CN113760948A (zh) 2021-01-29 2021-01-29 一种数据查询的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110129069.4A CN113760948A (zh) 2021-01-29 2021-01-29 一种数据查询的方法及装置

Publications (1)

Publication Number Publication Date
CN113760948A true CN113760948A (zh) 2021-12-07

Family

ID=78786501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110129069.4A Pending CN113760948A (zh) 2021-01-29 2021-01-29 一种数据查询的方法及装置

Country Status (1)

Country Link
CN (1) CN113760948A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637761A (zh) * 2022-03-10 2022-06-17 马上消费金融股份有限公司 业务对象生成方法及装置
CN114896280A (zh) * 2022-03-22 2022-08-12 杭州未名信科科技有限公司 一种数据查询方法和系统
CN115729951A (zh) * 2022-11-28 2023-03-03 易保网络技术(上海)有限公司 数据查询方法、系统、设备及计算机可读存储介质
CN117891847A (zh) * 2024-03-18 2024-04-16 辽宁牧龙科技有限公司 一种基于数据中台的数据查询装置及方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263018A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Method and System for Mapping Business Objects to Relational Database Tables
CN101419544A (zh) * 2007-10-26 2009-04-29 镇江雅迅软件有限责任公司 一种计算机程序代码自动生成器
CN102073642A (zh) * 2009-11-23 2011-05-25 英业达集团(天津)电子技术有限公司 自动生成结构化sql语句的方法与其电子装置
US20120290620A1 (en) * 2011-05-11 2012-11-15 Mark Zhenguo Guan Query Template Definition and Transformation
CN107798026A (zh) * 2016-09-05 2018-03-13 北京京东尚科信息技术有限公司 数据查询方法和装置
CN108959631A (zh) * 2018-07-24 2018-12-07 北京百度网讯科技有限公司 用于查询信息的方法和装置
CN109062952A (zh) * 2018-06-22 2018-12-21 北京奇艺世纪科技有限公司 一种数据查询方法、装置及电子设备
CN109145004A (zh) * 2018-08-29 2019-01-04 智慧互通科技有限公司 一种创建数据库索引的方法及装置
CN110008232A (zh) * 2019-04-11 2019-07-12 北京启迪区块链科技发展有限公司 结构化查询语句的生成方法、装置、服务器及介质
CN110990400A (zh) * 2019-11-20 2020-04-10 浙江大搜车软件技术有限公司 数据库查询方法、装置、计算机设备和存储介质
CN111177174A (zh) * 2018-11-09 2020-05-19 百度在线网络技术(北京)有限公司 Sql语句的生成方法、装置、设备和计算机可读存储介质
CN111414377A (zh) * 2020-03-05 2020-07-14 微民保险代理有限公司 结构化查询语句的处理方法、装置及存储介质
CN112052242A (zh) * 2020-09-02 2020-12-08 平安科技(深圳)有限公司 数据查询方法、装置、电子设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263018A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Method and System for Mapping Business Objects to Relational Database Tables
CN101419544A (zh) * 2007-10-26 2009-04-29 镇江雅迅软件有限责任公司 一种计算机程序代码自动生成器
CN102073642A (zh) * 2009-11-23 2011-05-25 英业达集团(天津)电子技术有限公司 自动生成结构化sql语句的方法与其电子装置
US20120290620A1 (en) * 2011-05-11 2012-11-15 Mark Zhenguo Guan Query Template Definition and Transformation
CN107798026A (zh) * 2016-09-05 2018-03-13 北京京东尚科信息技术有限公司 数据查询方法和装置
CN109062952A (zh) * 2018-06-22 2018-12-21 北京奇艺世纪科技有限公司 一种数据查询方法、装置及电子设备
CN108959631A (zh) * 2018-07-24 2018-12-07 北京百度网讯科技有限公司 用于查询信息的方法和装置
CN109145004A (zh) * 2018-08-29 2019-01-04 智慧互通科技有限公司 一种创建数据库索引的方法及装置
CN111177174A (zh) * 2018-11-09 2020-05-19 百度在线网络技术(北京)有限公司 Sql语句的生成方法、装置、设备和计算机可读存储介质
CN110008232A (zh) * 2019-04-11 2019-07-12 北京启迪区块链科技发展有限公司 结构化查询语句的生成方法、装置、服务器及介质
CN110990400A (zh) * 2019-11-20 2020-04-10 浙江大搜车软件技术有限公司 数据库查询方法、装置、计算机设备和存储介质
CN111414377A (zh) * 2020-03-05 2020-07-14 微民保险代理有限公司 结构化查询语句的处理方法、装置及存储介质
CN112052242A (zh) * 2020-09-02 2020-12-08 平安科技(深圳)有限公司 数据查询方法、装置、电子设备及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637761A (zh) * 2022-03-10 2022-06-17 马上消费金融股份有限公司 业务对象生成方法及装置
CN114637761B (zh) * 2022-03-10 2024-03-19 马上消费金融股份有限公司 业务对象生成方法及装置
CN114896280A (zh) * 2022-03-22 2022-08-12 杭州未名信科科技有限公司 一种数据查询方法和系统
CN115729951A (zh) * 2022-11-28 2023-03-03 易保网络技术(上海)有限公司 数据查询方法、系统、设备及计算机可读存储介质
CN115729951B (zh) * 2022-11-28 2024-02-09 易保网络技术(上海)有限公司 数据查询方法、系统、设备及计算机可读存储介质
CN117891847A (zh) * 2024-03-18 2024-04-16 辽宁牧龙科技有限公司 一种基于数据中台的数据查询装置及方法

Similar Documents

Publication Publication Date Title
CN111177231A (zh) 报表生成方法和报表生成装置
CN113760948A (zh) 一种数据查询的方法及装置
CN109614402B (zh) 多维数据查询方法和装置
CN111125064B (zh) 一种生成数据库模式定义语句的方法和装置
CN110555030A (zh) 一种sql语句的处理方法和装置
CN110689268B (zh) 一种提取指标的方法和装置
CN111061680A (zh) 一种数据检索的方法和装置
CN112905178B (zh) 业务功能页面生成方法、装置、设备及介质
CN111666293A (zh) 数据库访问方法和装置
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN112100168A (zh) 一种确定数据关联关系的方法和装置
CN110888869A (zh) 一种数据处理方法和装置
CN113220710A (zh) 数据查询方法、装置、电子设备以及存储介质
CN110764769B (zh) 处理用户请求的方法和装置
CN113760969A (zh) 一种基于ElasticSearch的数据查询方法和装置
CN113536748A (zh) 一种生成图表数据的方法和装置
CN111752964A (zh) 基于数据接口的数据处理方法及装置
CN113468529B (zh) 一种数据搜索方法和装置
CN117009430A (zh) 数据管理方法、装置和存储介质及电子设备
CN110806967A (zh) 一种单元测试方法和装置
CN113297087A (zh) 测试方法和装置
CN113377808A (zh) Sql优化方法和装置
CN113760240A (zh) 一种生成数据模型的方法和装置
CN113312053A (zh) 一种数据处理的方法和装置
CN113065920B (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