CN111460241B - 一种数据查询方法、装置、电子设备及存储介质 - Google Patents

一种数据查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111460241B
CN111460241B CN202010341163.1A CN202010341163A CN111460241B CN 111460241 B CN111460241 B CN 111460241B CN 202010341163 A CN202010341163 A CN 202010341163A CN 111460241 B CN111460241 B CN 111460241B
Authority
CN
China
Prior art keywords
key
identification
database
query
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010341163.1A
Other languages
English (en)
Other versions
CN111460241A (zh
Inventor
邱元海
杨连东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Forehope Electronic Ningbo Co Ltd
Original Assignee
Forehope Electronic Ningbo 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 Forehope Electronic Ningbo Co Ltd filed Critical Forehope Electronic Ningbo Co Ltd
Priority to CN202010341163.1A priority Critical patent/CN111460241B/zh
Publication of CN111460241A publication Critical patent/CN111460241A/zh
Application granted granted Critical
Publication of CN111460241B publication Critical patent/CN111460241B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供一种数据查询方法、装置、电子设备及存储介质,该方法包括:获得键值对集合,键值对集合为包括标识键和标识键对应的具体值的集合;根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合;根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。在上述的实现过程中,在查询结果的供给方已经实现了和查询结果的需求方之间预先定义的查询预设规则,当查询结果的需求方提出新的需求时,若查询结果的需求方遵从该预设规则,则仍然可以正常获得查询结果,使得供给方不再变更之前已经实现的预设规则,查询条件也可以任意组合,不再修改查询服务接口,从而提高服务端在生产环境的稳定性。

Description

一种数据查询方法、装置、电子设备及存储介质
技术领域
本申请涉及数据处理和数据库的技术领域,具体而言,涉及一种数据查询方法、装置、电子设备及存储介质。
背景技术
数据库(DataBase,DB),是指存储电子数据或者电子文件的集合,简而言之可视为电子化的文件柜,用户可以对文件中的数据运行新增、截取、更新、删除等操作;这里的数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
目前获得查询数据的方式例如:客户端根据查询条件调用服务端的数据查询服务接口,获得服务端发送的数据查询结果;这里的客户端可以是终端设备,这里的服务端可以是业务服务器、应用服务器或者数据库服务器。然而在具体的实践过程中发现,当查询条件变化时,服务端的查询服务接口必然要变化,从而降低了服务端在生产环境的稳定性;也就是说,目前提供的数据查询服务在生产环境的稳定性比较差。
发明内容
本申请实施例的目的在于提供一种数据查询方法、装置、电子设备及存储介质,用于改善数据查询服务在生产环境的稳定性比较差的问题。
本申请实施例提供了一种数据查询方法,包括:获得键值对集合,键值对集合为包括标识键和标识键对应的具体值的集合;根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合,数据库参数集合为结构查询语言语句的数据库参数的集合;根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。在上述的实现过程中,通过根据预设规则对获得的键值对集合进行解析,获得结构查询语言语句和数据库参数集合,并根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果;有效地减少了服务端对查询服务接口变化的次数;也就是说,在查询结果的供给方已经实现了和查询结果的需求方之间预先定义的查询预设规则,当查询结果的需求方提出新的需求时,若查询结果的需求方遵从该预设规则,则仍然可以正常获得查询结果,使得供给方不再变更之前已经实现的预设规则,查询条件也可以任意组合,不再修改查询服务接口,从而提高服务端在生产环境的稳定性。
可选地,在本申请实施例中,根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合,包括:从键值对集合中筛选出有效的标识键,获得多个标识键;对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句;对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合。在上述的实现过程中,通过从键值对集合中筛选出有效的标识键,获得多个标识键;对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句;对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合;从而提高了获得结构查询语言语句和数据库参数集合的速度,使得查询条件可以任意组合,服务端不再修改查询服务接口,从而提高服务端在生产环境的稳定性。
可选地,在本申请实施例中,对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句,包括:将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句。在上述的实现过程中,通过将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句;从而有效地提高了获得结构查询语言语句的速度。
可选地,在本申请实施例中,标识键包括:标记位、字段名称和比较符;将多个标识键中的每个标识键解析和拼接为字符串语句,包括:从标识键中解析出标记位、字段名称和比较符;若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句。在上述的实现过程中,通过从标识键中解析出标记位、字段名称和比较符;若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句;有效地提高了获得字符串语句的速度,从而减少了获得结构查询语言语句的时间。
可选地,在本申请实施例中,标识键还包括比较符对应的数据格式;对键值对集合中的每个具体值进行格式化和参数化,包括:根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值;根据格式化后的具体值、预设占位符和字段名称构建数据库参数。在上述的实现过程中,通过根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值;根据格式化后的具体值、预设占位符和字段名称构建数据库参数;从而有效地提高了获得数据库参数集合的速度。
可选地,在本申请实施例中,获得键值对集合,包括:接收电子设备发送的键值对集合;在获得数据查询结果之后,还包括:向电子设备发送数据查询结果。在上述的实现过程中,通过接收电子设备发送的键值对集合,在根据键值对集合获得数据查询结果之后,然后向电子设备发送数据查询结果,还从而有效地提高了电子设备获得数据查询结果的速度。
本申请实施例还提供了一种数据查询装置,包括:集合获得模块,用于获得键值对集合,键值对集合为包括标识键和标识键对应的具体值的集合;集合解析模块,用于根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合,数据库参数集合为结构查询语言语句的数据库参数的集合;结果获得模块,用于根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。
可选地,在本申请实施例中,集合解析模块,包括:标识键获得模块,用于从键值对集合中筛选出有效的标识键,获得多个标识键;标识键解析模块,用于对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句;格式参数化模块,用于对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合。
可选地,在本申请实施例中,标识键解析模块,包括:字符语句获得模块,用于将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;查询语句获得模块,用于使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句。
可选地,在本申请实施例中,标识键包括:标记位、字段名称和比较符;字符语句获得模块,包括:标识键解析子模块,用于从标识键中解析出标记位、字段名称和比较符;字符语句拼接模块,用于若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句。
可选地,在本申请实施例中,标识键还包括比较符对应的数据格式;格式参数化模块,包括:具体值格式化模块,用于根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值;数据参数构建模块,用于根据格式化后的具体值、预设占位符和字段名称构建数据库参数。
可选地,在本申请实施例中,集合获得模块,包括:键值集合接收模块,用于接收电子设备发送的键值对集合;数据查询装置,还包括:查询结果发送模块,用于向电子设备发送数据查询结果。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的数据查询方法的流程示意图;
图2示出的本申请实施例提供的标识键中比较符的映射示意图;
图3示出的本申请实施例提供的数据格式部分解析的映射示意图;
图4示出的本申请实施例提供的电子设备与其它电子设备进行交互的流程示意图;
图5示出的本申请实施例提供的数据查询装置的结构示意图;
图6示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
在介绍本申请实施例提供的数据查询方法之前,先介绍本申请实施例所涉及的一些概念:
脚本对象简谱(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式;JSON基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,JSON采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言;JSON易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
可扩展标记语言(eXtensible Markup Language,XML)是指标准通用标记语言的子集,同时,XML也是一种用于标记电子文件使其具有结构性的标记语言。
关系型数据库是指采用关系模型来组织数据的数据库,关系型数据库以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,常见的关系型数据库例如:Mysql、PostgreSQL、Oracle和SQLSever等。
数据库管理系统(Database Management System,DBMS),是为管理数据库而设计的电脑软件系统,DBMS一般具有存储、截取、安全保障、备份等基础功能。
关系数据库管理系统(Relational Database Management System,RDBMS),是管理关系数据库的数据库管理系统;关系数据库是将数据间的关系以数据库表的形式加以表达,并将数据存储在表格中,以便于查询。
组件对象模型(Component Object Model,COM)是微软的一套软件组件的二进制接口标准;这使得跨编程语言的进程间通信、动态对象创建成为可能。
对象链接嵌入数据库(Object Linking and Embedding Database,OLE DB,有时亦写作OLEDB或OLE-DB)是微软为以统一方式访问不同类型的数据存储设计的一种应用程序接口,是一组用组件对象模型(COM)实现的接口。
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发;Java编程语言的风格十分接近C++语言。
Java数据库连接(Java Database Connectivity,JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
开放数据库互连(Open Database Connectivity,ODBC)提供了一种标准的应用程序编程接口方法来访问数据库管理系统(DBMS);这些应用程序编程接口利用SQL来完成其大部分任务;ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。当然在具体的实施过程中,上述的服务器可以具体选择大型机或者小型机,这里的小型机是指采用精简指令集计算(ReducedInstruction Set Computing,RISC)、单字长定点指令平均执行速度(MillionInstructions Per Second,MIPS)等专用处理器,主要支持UNIX操作系统的封闭且专用的提供计算服务的设备;这里的大型机,又名大型主机,是指使用专用的处理器指令集、操作系统和应用软件来提供计算服务的设备。
需要说明的是,本申请实施例提供的数据查询方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digitalassistant,PDA)、移动上网设备(mobile Internet device,MID)、网络交换机或网络路由器等。
在介绍本申请实施例提供的数据查询方法之前,先介绍该数据查询方法适用的应用场景,这里的应用场景包括但不限于:在半导体行业中采用微服务架构,具体例如:将数据库服务做成微服务,为其它的服务器或者终端设备提供数据查询服务或者数据同步服务,基于浏览器/服务器(Browser/Server,B/S)方式进行web程序开发的场景,或者基于客户端和服务端(Client/Server,C/S)方式进行应用程序开发的场景,具体例如:使用该数据查询方法提供数据的查询服务和搜索服务等。
上述的数据查询方法适用的应用场景又例如:使用该数据查询方法可以适应动态的查询规则而不需要修改微服务的具体服务接口,具体地,原来的订单查询接口是需要按订单编号精确查询的,需要修改为按订单编号模糊查询,在对照实施例中需要同时修改客户端和服务端的代码;使用该数据查询方法后,只需要修改客户端输入的键值对,而服务端不需要任何改动。
图1示出的本申请实施例提供的数据查询方法的流程示意图;该数据查询方法可以包括如下步骤:
步骤S110:获得键值对集合。
键值对集合(key-value collection),是指包括标识键和标识键对应的具体值的集合;其中,键值对(key-value pair)是指标识键和标识键对应的具体值组成的一对数据;这里的标识键包括:标记位、字段名称和比较符,以及该比较符对应的数据格式;键值对集合的具体表现形式有很多种,为了便于理解和说明,这里以JSON格式表示为[{"key1":"value1"},{"key2":"value2"}]。
请参见图2示出的本申请实施例提供的标识键中比较符的映射示意图;上述的比较符是指映射结构查询语言中的操作符的符号,即SQL语句中的操作符,具体例如:Eq是Equal的缩写,Eq表示等于的意思;Gt是grant than的缩写,Gt表示大于的意思;Gte是grantthan or equal的缩写,Gte表示大于或等于的意思;Lt是less than的缩写,Lt表示小于的意思,依次类推。
上述步骤S110中的键值对集合的获得方式包括:第一种方式,获取预先存储的键值对集合,从文件系统中获取键值对集合,或者从数据库中获取键值对集合;第二种方式,其他终端设备向电子设备发送键值对集合,然后电子设备从其他终端设备接收键值对集合;第三种方式,使用浏览器等软件获取互联网上的键值对集合,或者使用其它应用程序访问互联网获得键值对集合。
在步骤S110之后,执行步骤S120:根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合。
预设规则,是指对键值对集合进行解析的规则,这里的预设规则具体例如:根据输入的查询条件一个Key-Value的键值对集合,其中的Key是按预设的规则进行生成的;这里的标识键(Key)包含四个部分:标记位、字段名称、比较符和数据格式;具体例如:键值对集合中的其中一个键值对中的标识键(Key)为Query_CreateTime_Gt$h,而该键值对中的具体值(Value)为2020-03-19 16:43:37;那么可以从标识键按下划线拆分出标记位、字段名称、比较符和数据格式;标记位为Query,Query表示查询操作;字段名称为CreateTime,CreateTime表示创建时间;比较符和数据格式为Gt$h,其中,Gt为比较符,Gt是大于的意思,$是另一种分隔符,h表示创建时间按照小时(hour)来比较。当然,在具体的实践过程中,上述的预设规则、分割符、标记位、字段名称、比较符和数据格式均可以根据具体需求进行设置,不应理解为对本申请实施例的限制。
结构化查询语言(Structured Query Language,SQL)是一种特定目的编程语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理;其中,管理关系数据库管理系统是数据库管理系统DBMS的一种,DBMS一般具有存储、截取、安全保障、备份等基础功能。
数据库参数集合,是指结构查询语言语句(SQL)的数据库参数的集合,具体以RDBMS的数据库参数为例进行说明,若数据库参数集合使用JSON格式表示为[{"a":"v1"},{"b":"v2"}],且SQL语句为select*from tableName where a=?and b=?,那么这里的tableName是表名,这里的?是占位符,在数据库具体执行时分别使用数据库参数集合中的具体值替换(或者称赋值)SQL语句的占位符,执行替换后的SQL语句,并获得查询结果。
上述步骤S120中的根据预设规则对键值对集合进行解析的具体方式有很多种,即可以根据具体设置的预设规则进行解析,这里仅列举其中一个例子进行详细说明,获得结构查询语言语句和数据库参数集合的实施方式可以包括:
步骤S121:从键值对集合中筛选出有效的标识键,获得多个标识键。
上述步骤S121中的从键值对集合中筛选出有效的标识键的实施方式例如:若键值对集合中的标识键包括预设标记位,则将该标识键确定为有效的标识键,则可以获得多个标识键;这里的预设标记位可以根据具体情况设置,预设标记位例如Query等,例如:若预设标记位为Query,键值对集合为[{"Query_CreateTime_Gt$h":"2020-03-1916:43:37"},{"T_time_Gt$h":"2020-0 3-23 16:43:37"}];那么有效的标识键为Query_CreateTime_Gt$h,获得的多个标识键包括:{"Query_CreateTime_Gt$h":"2020-03-1916:43:37"}。
步骤S122:对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句。
上述步骤S122中的对多个标识键中的每个标识键进行解析和连接有很多种方式,例如:根据不同的分隔符进行解析分割,获得标识键中的各个元素,这里的各个元素例如:标记位、字段名称、比较符和数据格式等,再将各个元素以占位符的方式拼接为查询条件分句,最后将分句拼接为结构查询语言语句,通过这种方式获得结构查询语言语句的实施方式包括如下步骤:
步骤S1221:将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句。
上述步骤S1221中的将多个标识键中的每个标识键解析和拼接为字符串语句的实施方式例如:从标识键中解析出标记位、字段名称和比较符;若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句,具体地,若标识键(Key)为Query_CreateTime_Gt$h,根据分隔符下划线和美元符号进行分割或拆分,则可以拆分出标记位、字段名称、比较符和数据格式;标记位为Query,Query表示查询操作;字段名称为CreateTime,CreateTime表示创建时间;比较符和数据格式为Gt$h,其中,Gt为比较符,Gt是大于的意思,$是另一种分隔符,h表示创建时间按照小时(hour)来比较;然后开始拼接字符串,先把字段名称和比较符拼接,再拼接和字段名一样的数据库参数,如:“CreateTime>@CreateTime”和“UpdateTime<@UpdateTime”,这里的@CreateTime可以理解为占位符。
步骤S1222:使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句。
预设连接符,是指多个条件语句的连接符,这里的条件语句可以是查询语句,也可以是更新语句或者删除语句,这里以查询语句为例,那么这里的预设连接符可以为and。
上述步骤S1222中的使用预设连接符将多个字符串语句进行连接的实施方式例如:若预设连接符为and,且多个字符串语句为“CreateTime>@CreateTime”和“UpdateTime<@UpdateTime”,那么获得条件查询语句为“and CreateTime>@CreateTimeand UpdateTime<@UpdateTime”。在上述的实现过程中,通过从标识键中解析出标记位、字段名称和比较符;若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句;有效地提高了获得字符串语句的速度,从而减少了获得结构查询语言语句的时间。
当然在具体的实施过程中,还需要将上述的条件查询语句与业务SQL语句拼接后,获得结构查询语言语句;具体例如:若业务SQL语句为“select*from student where 1=1”,且条件查询语句可以为“and CreateTime>@CreateTime and UpdateTime<@UpdateTime”,那么两者拼接获得“select*from student where 1=1and CreateTime>@CreateTime and UpdateTime<@UpdateTime”;其中,这里的@是占位符,@UpdateTime表示是UpdateTime字段的占位符。
在上述的实现过程中,通过将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句;从而有效地提高了获得结构查询语言语句的速度。
步骤S123:对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合。
请参见图3示出的本申请实施例提供的数据格式部分解析的映射示意图;格式化,是指将具体值转换数据库参数的格式,具体例如:若具体值为时间2020-03-19 16:43:37,数据格式部分为Y,这里的Y表示只解析格式化年的部分,那么格式化后的时间为2020-01-01 00:00:00,当然,这里的数据格式部分还可以为M/D/H/m/S等,M表示解析月份,D表示解析天,H表示解析小时,m表示解析分钟,S表示解析秒钟等;若数据格式部分为M,那么格式化后的时间为2020-03-01 00:00:00,以此类推。
上述步骤S123中的对键值对集合中的每个具体值进行格式化和参数化的实施方式例如:根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值;根据格式化后的具体值、预设占位符和字段名称构建数据库参数;具体例如;若参数名称为占位符和字段名称,例如:键值对集合为[{"Query_CreateTime_Gt$h":"2020-03-1916:43:37"},{"Query_UpdateTime_Lt$h":"2020-03-23 16:43:37"}],那么数据库参数名称分别为@CreateTime和@UpdateTime,数据库参数的值分别为2020-03-1916:00:00和2020-03-23 16:00:00,获得的数据库参数集合使用JSON格式表示例如:[{"@CreateTime":"2020-03-1916:00:00"},{"@UpdateTime":"2020-03-23 16:00:00"}]。在上述的实现过程中,通过根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值;根据格式化后的具体值、预设占位符和字段名称构建数据库参数;从而有效地提高了获得数据库参数集合的速度。
在上述的实现过程中,通过从键值对集合中筛选出有效的标识键,获得多个标识键;对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句;对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合;从而提高了获得结构查询语言语句和数据库参数集合的速度,使得查询条件可以任意组合,服务端不再修改查询服务接口,从而提高服务端在生产环境的稳定性。
在步骤S120之后,执行步骤S130:根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。
上述步骤S130中的根据数据库参数集合在数据库中执行结构查询语言语句的实施方式例如:若结构查询语言语句为“select*from student where 1=1and CreateTime>@CreateTime and UpdateTime<@UpdateTime”,且数据库参数集合使用JSON格式表示例如:[{"@CreateTime":"2020-03-1916:00:00"},{"@UpdateTime":"2020-03-23 16:00:00"}],数据库在具体执行时将把结构查询语言语句中的占位符和参数名称替换为具体值,那么可以得知在数据库中执行的结构查询语言语句为“select*from student where 1=1and CreateTime>2020-03-1916:00:00and UpdateTime<2020-03-23 16:00:00”,获得数据查询结果。
当然在具体的实践过程中,在数据库中执行结构查询语言语句可以通过很多方式,这些方式例如:ADO.NET、JDBC或者ODBC方式;其中,这里的ADO.NET是微软在.NET框架中负责数据访问的类别库集,它是使用在COM时代奠基的OLE DB技术以及.NET框架的类别库和编程语言来发展的,ADO.NET可以让.NET上的任何编程语言能够连接并访问关系数据库与非数据库型数据源(例如XML、Excel或是文字档数据),或是独立出来作为处理应用程序数据的类别对象。
在上述的实现过程中,通过根据预设规则对获得的键值对集合进行解析,获得结构查询语言语句和数据库参数集合,并根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果;有效地减少了服务端对查询服务接口变化的次数;也就是说,在查询结果的供给方已经实现了和查询结果的需求方之间预先定义的查询预设规则,当查询结果的需求方提出新的需求时,若查询结果的需求方遵从该预设规则,则仍然可以正常获得查询结果,使得供给方不再变更之前已经实现的预设规则,查询条件也可以任意组合,不再修改查询服务接口,从而提高服务端在生产环境的稳定性。
请参见图4示出的本申请实施例提供的电子设备与其它电子设备进行交互的流程示意图;可选地,在本申请实施例中,执行上述数据查询方法的电子设备可以与其它电子设备进行交互,这里的其它电子设备包括服务器或者终端设备;那么执行上述数据查询方法的电子设备与服务器或者终端设备交互的方法可以包括如下步骤:
步骤S210:电子设备接收服务器或者终端设备发送的键值对集合。
上述步骤S210中的电子设备接收服务器或者终端设备发送的键值对集合的实施方式例如:电子设备通过传输控制协议(Transmission Control Protocol,TCP)或者用户数据报协议(User Datagram Protocol,UDP)接收服务器或者终端设备发送的键值对集合;这里的TCP协议又名网络通讯协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议;这里的UDP协议是User Datagram Protocol的简称,中文名是用户数据报协议,UDP协议是开放式系统互联(Open System Interconnection,OSI)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
步骤S220:电子设备根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合。
步骤S230:电子设备根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。
其中,上述步骤S220至步骤S230的实施原理和实施方式与步骤S120至步骤S130的实施原理和实施方式是相似或类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S120至步骤S130的描述。
步骤S240:电子设备向服务器或者终端设备发送数据查询结果。
上述步骤S240中的电子设备向服务器或者终端设备发送数据查询结果的实施方式例如:电子设备通过超文本传输协议(Hyper Text Transfer Protocol,HTTP)或者超文本传输安全协议(HyperText Transfer Protocol Secure,HTTPS)向服务器或者终端设备发送数据查询结果;这里的HTTP协议是一个简单的请求响应协议,HTTP协议通常运行在传输控制协议(Transmission Control Protocol,TCP)之上,HTTP协议指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应;这里的HTTPS协议又称为HTTP Secure,是一种通过计算机网络进行安全通信的传输协议;HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
当然在具体的实施过程中,上述步骤S240还可以使用HTTP/2协议发送数据查询结果;这里的HTTP/2协议是超文本传输协议第2版,最初命名为HTTP 2.0,简称为h2(即基于TLS/1.2或以上版本的加密连接)或h2c(非加密连接),是HTTP协议的第二个主要版本,使用于万维网。HTTP/2的标准化工作由Chrome、Opera、Firefox、Internet Explorer 11、Safari、Amazon Silk及Edge等浏览器提供支持。
在上述的实现过程中,通过接收电子设备发送的键值对集合,在根据键值对集合获得数据查询结果之后,然后向电子设备发送数据查询结果,还从而有效地提高了电子设备获得数据查询结果的速度。
请参见图5示出的本申请实施例提供的数据查询装置的结构示意图;本申请实施例提供了一种数据查询装置300,包括:
集合获得模块310,用于获得键值对集合,键值对集合为包括标识键和标识键对应的具体值的集合。
集合解析模块320,用于根据预设规则对键值对集合进行解析,获得结构查询语言语句和数据库参数集合,数据库参数集合为结构查询语言语句的数据库参数的集合。
结果获得模块330,用于根据数据库参数集合在数据库中执行结构查询语言语句,获得数据查询结果。
可选地,在本申请实施例中,集合解析模块,包括:
标识键获得模块,用于从键值对集合中筛选出有效的标识键,获得多个标识键。
标识键解析模块,用于对多个标识键中的每个标识键进行解析和连接,获得结构查询语言语句。
格式参数化模块,用于对键值对集合中的每个具体值进行格式化和参数化,获得数据库参数集合。
可选地,在本申请实施例中,标识键解析模块,包括:
字符语句获得模块,用于将多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句。
查询语句获得模块,用于使用预设连接符将多个字符串语句进行连接,获得结构查询语言语句。
可选地,在本申请实施例中,标识键包括:标记位、字段名称和比较符;字符语句获得模块,包括:
标识键解析子模块,用于从标识键中解析出标记位、字段名称和比较符。
字符语句拼接模块,用于若标记位为预设标记,则将字段名称、比较符、预设占位符和字段名称拼接为字符串语句。
可选地,在本申请实施例中,标识键还包括比较符对应的数据格式;格式参数化模块,包括:
具体值格式化模块,用于根据比较符和比较符对应的数据格式对每个具体值进行格式化,获得格式化后的具体值。
数据参数构建模块,用于根据格式化后的具体值、预设占位符和字段名称构建数据库参数。
可选地,在本申请实施例中,集合获得模块,包括:
键值集合接收模块,用于接收电子设备发送的键值对集合。
数据查询装置,还包括:
查询结果发送模块,用于向电子设备发送数据查询结果。
应理解的是,该装置与上述的数据查询方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。
本申请实施例还提供了一种存储介质430,该存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。
其中,存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。

Claims (5)

1.一种数据查询方法,其特征在于,包括:
获得键值对集合,所述键值对集合为包括标识键和标识键对应的具体值的集合;
根据预设规则对所述键值对集合进行解析,获得结构查询语言语句和数据库参数集合,所述数据库参数集合为所述结构查询语言语句的数据库参数的集合;
根据所述数据库参数集合在数据库中执行所述结构查询语言语句,获得数据查询结果;
所述根据预设规则对所述键值对集合进行解析,获得结构查询语言语句和数据库参数集合,包括:
从所述键值对集合中筛选出有效的标识键,获得多个标识键;
对所述多个标识键中的每个标识键进行解析和连接,获得所述结构查询语言语句;
对所述键值对集合中的每个具体值进行格式化和参数化,获得所述数据库参数集合;
所述标识键包括:标记位、字段名称、比较符和所述比较符对应的数据格式;所述对所述键值对集合中的每个具体值进行格式化和参数化,包括:根据所述比较符和所述比较符对应的数据格式对所述每个具体值进行格式化,获得格式化后的具体值;根据所述格式化后的具体值、预设占位符和所述字段名称构建所述数据库参数;
所述对所述多个标识键中的每个标识键进行解析和连接,获得所述结构查询语言语句,包括:
将所述多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;
使用预设连接符将所述多个字符串语句进行连接,获得所述结构查询语言语句;
所述将所述多个标识键中的每个标识键解析和拼接为字符串语句,包括:
从所述标识键中解析出所述标记位、所述字段名称和所述比较符;
若所述标记位为预设标记,则将所述字段名称、所述比较符、所述预设占位符和所述字段名称拼接为所述字符串语句。
2.根据权利要求1所述的方法,其特征在于,所述获得键值对集合,包括:
接收电子设备发送的所述键值对集合;
在所述获得数据查询结果之后,还包括:
向所述电子设备发送所述数据查询结果。
3.一种数据查询装置,其特征在于,包括:
集合获得模块,用于获得键值对集合,所述键值对集合为包括标识键和标识键对应的具体值的集合;
集合解析模块,用于根据预设规则对所述键值对集合进行解析,获得结构查询语言语句和数据库参数集合,所述数据库参数集合为所述结构查询语言语句的数据库参数的集合;
结果获得模块,用于根据所述数据库参数集合在数据库中执行所述结构查询语言语句,获得数据查询结果;
所述集合解析模块,包括:
标识键获得模块,用于从所述键值对集合中筛选出有效的标识键,获得多个标识键;
标识键解析模块,用于对所述多个标识键中的每个标识键进行解析和连接,获得所述结构查询语言语句;
格式参数化模块,用于对所述键值对集合中的每个具体值进行格式化和参数化,获得所述数据库参数集合;
所述标识键包括:标记位、字段名称、比较符和所述比较符对应的数据格式;格式参数化模块,包括:
具体值格式化模块,用于根据所述比较符和所述比较符对应的数据格式对所述每个具体值进行格式化,获得格式化后的具体值;
数据参数构建模块,用于根据所述格式化后的具体值、预设占位符和所述字段名称构建所述数据库参数;
所述标识键解析模块,包括:字符语句获得模块,用于将所述多个标识键中的每个标识键解析和拼接为字符串语句,获得多个字符串语句;查询语句获得模块,用于使用预设连接符将所述多个字符串语句进行连接,获得所述结构查询语言语句;
所述字符语句获得模块,包括:标识键解析子模块,用于从所述标识键中解析出所述标记位、所述字段名称和所述比较符;字符语句拼接模块,用于若所述标记位为预设标记,则将所述字段名称、所述比较符、所述预设占位符和所述字段名称拼接为所述字符串语句。
4.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至2任一所述的方法。
5.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至2任一所述的方法。
CN202010341163.1A 2020-04-26 2020-04-26 一种数据查询方法、装置、电子设备及存储介质 Active CN111460241B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010341163.1A CN111460241B (zh) 2020-04-26 2020-04-26 一种数据查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010341163.1A CN111460241B (zh) 2020-04-26 2020-04-26 一种数据查询方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111460241A CN111460241A (zh) 2020-07-28
CN111460241B true CN111460241B (zh) 2024-01-23

Family

ID=71683840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010341163.1A Active CN111460241B (zh) 2020-04-26 2020-04-26 一种数据查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111460241B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286958A (zh) * 2020-11-16 2021-01-29 广州速威智能系统科技有限公司 数据库查询表达式的处理方法和系统
CN112487032A (zh) * 2020-11-27 2021-03-12 北京三快在线科技有限公司 数据查询的方法、装置、存储介质及电子设备
CN113312881B (zh) * 2021-05-06 2024-04-05 上海移远通信技术股份有限公司 频段信息转换方法及装置、电子设备和计算机存储介质
CN114979056B (zh) * 2022-05-20 2023-12-29 甬矽电子(宁波)股份有限公司 一种电子邮件处理方法、装置、存储介质及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及系统
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法
CN106372176A (zh) * 2016-08-30 2017-02-01 东华大学 一种支持对嵌套文档进行统一sql查询的方法
CN108536745A (zh) * 2018-02-24 2018-09-14 平安科技(深圳)有限公司 基于Shell的数据表提取方法、终端、设备及存储介质
JP2018180847A (ja) * 2017-04-11 2018-11-15 Kddi株式会社 問合せ文検索装置、問合せ文検索方法及び問合せ文検索プログラム
CN109145014A (zh) * 2017-06-15 2019-01-04 北京京东尚科信息技术有限公司 生成弹性搜索请求的方法和装置
CN109582695A (zh) * 2018-12-04 2019-04-05 用友网络科技股份有限公司 一种微服务架构下数据通用查询方法及查询系统
CN109710655A (zh) * 2018-11-09 2019-05-03 中国平安人寿保险股份有限公司 数据库查询方法、装置、终端设备及存储介质
CN109739873A (zh) * 2018-12-27 2019-05-10 广州市玄武无线科技股份有限公司 一种业务数据查询方法、装置、设备及可读存储介质
CN110688544A (zh) * 2019-10-17 2020-01-14 北京锐安科技有限公司 一种查询数据库的方法、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310637B2 (en) * 2004-05-05 2007-12-18 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及系统
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法
CN106372176A (zh) * 2016-08-30 2017-02-01 东华大学 一种支持对嵌套文档进行统一sql查询的方法
JP2018180847A (ja) * 2017-04-11 2018-11-15 Kddi株式会社 問合せ文検索装置、問合せ文検索方法及び問合せ文検索プログラム
CN109145014A (zh) * 2017-06-15 2019-01-04 北京京东尚科信息技术有限公司 生成弹性搜索请求的方法和装置
CN108536745A (zh) * 2018-02-24 2018-09-14 平安科技(深圳)有限公司 基于Shell的数据表提取方法、终端、设备及存储介质
CN109710655A (zh) * 2018-11-09 2019-05-03 中国平安人寿保险股份有限公司 数据库查询方法、装置、终端设备及存储介质
CN109582695A (zh) * 2018-12-04 2019-04-05 用友网络科技股份有限公司 一种微服务架构下数据通用查询方法及查询系统
CN109739873A (zh) * 2018-12-27 2019-05-10 广州市玄武无线科技股份有限公司 一种业务数据查询方法、装置、设备及可读存储介质
CN110688544A (zh) * 2019-10-17 2020-01-14 北京锐安科技有限公司 一种查询数据库的方法、设备及存储介质

Also Published As

Publication number Publication date
CN111460241A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111460241B (zh) 一种数据查询方法、装置、电子设备及存储介质
US10769228B2 (en) Systems and methods for web analytics testing and web development
US10394552B2 (en) Interface description language for application programming interfaces
KR101755365B1 (ko) 레코드 포맷 정보의 관리
US11200033B2 (en) Application programming interface (API) based object oriented software development and textual analysis
US11042427B2 (en) Automated consolidation of API specifications
US11561997B2 (en) Methods, systems, and computer readable media for data translation using a representational state transfer (REST) application programming interface (API)
CN112154420A (zh) 自动智能云服务测试工具
CN113434175B (zh) 数据处理方法、装置、存储介质及设备
US20220138074A1 (en) Method, electronic device and computer program product for processing data
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN113760948A (zh) 一种数据查询的方法及装置
CN111125064B (zh) 一种生成数据库模式定义语句的方法和装置
US11775290B2 (en) Detection of API backward compatibility across software versions
CN108694172B (zh) 信息输出方法和装置
CN116414774A (zh) 文件迁移方法、装置、设备及存储介质
CN116414855A (zh) 信息处理方法及装置、电子设备和计算机可读存储介质
CN113138767B (zh) 代码语言转换方法、装置、电子设备及存储介质
CN113672233B (zh) 一种基于Redfish的服务器带外管理方法、装置及设备
CN114625373A (zh) 应用转换方法、装置、电子设备和存储介质
CN114398152A (zh) 接口仿真服务调用方法及装置
CN112130860A (zh) Json对象解析方法、装置、电子设备及存储介质
CN117459452A (zh) 应用程序接口识别方法、装置、介质及电子设备
CN117234899A (zh) 回归测试方法、装置、设备及计算机介质
CN113110873A (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