CN109241095B - 一种快速查询方法、终端和可存储介质 - Google Patents
一种快速查询方法、终端和可存储介质 Download PDFInfo
- Publication number
- CN109241095B CN109241095B CN201810770122.7A CN201810770122A CN109241095B CN 109241095 B CN109241095 B CN 109241095B CN 201810770122 A CN201810770122 A CN 201810770122A CN 109241095 B CN109241095 B CN 109241095B
- Authority
- CN
- China
- Prior art keywords
- query
- template
- fast
- condition
- statement
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明实施例涉及数据查询领域,公开了一种快速查询方法、终端和可存储介质。本发明中,快速查询方法,包括:预设空缺查询条件的后端查询语句的模板;在接收到来自前端的查询请求时,解析查询请求,获得查询条件;根据查询条件和模板生成后端查询语句,进行查询,使得后端的查询语句得以自动生成,在修改查询条件时,大大减少后端开发人员的工作量。
Description
技术领域
本发明实施例涉及数据查询领域,特别涉及查询条件的修改技术。
背景技术
在业务管理系统中,查询功能是比较常见的一种功能,信息的查询是信息管理中非常重要的一环,所以在信息系统的数据库中存储着大量的技术、经济、生产、人事、设备和市场等信息,要从中快速方便的查到所需要的信息,是信息查询系统的基础。开发一个查询页面功能通常需要前后端开发人员的配合。前端开发人员需要开发响应查询页面比如jsp或者html,然后采用前端脚本语言比如js向后端系统发起请求,等待返回数据再进行数据渲染;后端开发人员需要开发一个查询功能根据前端的条件从数据库获取数据,其中涉及后端代码编写(如SQL)。
本申请发明人发现:实际工作中,查询条件经常会出现变更,这个时候,前端开发人员要改前端js代码,后端开发人员响应修改对应SQL代码,工作量冗多,如果经常变更的话,显得非常繁琐无趣。
比如有一个用户查询功能,查询条件有用户名称(username),性别(sex),后台对应sql为:“select*from user where username=?And sex=?”,如果需求发生变化,比如用户名称由全匹配改成模糊匹配,增加一个注册时间(register_time)查询。这时,前端开发人员需要增加注册时间查询条件,后端开发人员修改需要增加注册时间查询,用户名称匹配改成模糊匹配,这时的sql为:“select*from user where username like“%?%”andsex=?and register_time>?”。
发明内容
本发明实施方式的目的在于提供一种快速查询方法、终端和可存储介质,使得后端的查询语句得以自动生成,在修改查询条件时,大大减少后端开发人员的工作量。
为解决上述技术问题,本发明的实施方式提供了一种快速查询方法,包括:预设空缺查询条件的后端查询语句的模板;在接收到来自前端的查询请求时,解析所述查询请求,获得查询条件;根据所述查询条件和所述模板生成后端查询语句,进行查询。
本发明的实施方式还提供了一种终端,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的快速查询方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的快速查询方法。
本发明实施方式相对于现有技术而言,主要区别及其效果为:改变现有后端查询语句的生成方法,预设空缺查询条件的查询语句模板,由前端提供的查询请求中携带具体的查询条件,且利用预设的模板进行自动转换生成后端所需的数据库查询语句,使得运算符由当次前端的查询请求所指定,变动灵活。避免现有后端查询语句由人为撰写的生成方式,减少在修改前端查询条件后,后端需人为修改查询语句的工作量。可见,本发明实施方式中的快速查询方法使得后端的查询语句得以自动生成,在修改查询条件时,大大减少后端开发人员的工作量。
作为进一步改进,所述解析查询请求,获得查询条件中,所述查询条件包括:运算符、查询字段和查询值。限定了查询条件的具体项目,尤其限定在发来的查询请求中不仅包括现有常规的查询字段和查询值,还包括运算符,丰富查询条件的可变化范围。
作为进一步改进,所述运算符、所述查询字段和所述查询值分别利用预设字符识别出。利用预设字符进行运算符识别,准确快速。
作为进一步改进,所述运算符属于预设的运算符集。预设运算符集可以限定可能获得的运算符的范围,进一步利于运算符的准备识别。
作为进一步改进,运算符集中的运算符由用户预设。实现用户可以对运算符集进行修改和自定义设定,便于建立复合用户需求的运算符集。
作为进一步改进,根据所述查询条件和所述后端查询语句的模板生成后端查询语句,具体包括:根据预设的对应关系,将所述查询条件转换为符合后端开发代码的查询条件表达式;根据所述符合后端开发代码的查询条件表达式和所述模板生成所述后端查询语句。限定在自动生成后端查询语句的过程中,先根据预设的对应关系转换查询条件,再利用模板生成,使得生成过程更为准确。
作为进一步改进,所述根据符合后端开发代码的查询条件表达式和所述模板生成所述后端查询语句,具体为:将所述查询条件表达式添加至所述模板,生成所述后端查询语句。进一步限定利用添加的方式生成后端查询语句。
作为进一步改进,所述运算符集至少包括以下之一:等于运算符、模糊运算符、大于运算符、小于运算符、包含运算符。限定运算符集中可涵盖的运算符,便于转换时的便捷转换。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式中的快速查询方法流程图;
图2是根据本发明第二实施方式中的快速查询方法中应用的系统架构图;
图3是根据本发明第三实施方式中的终端示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种快速查询方法。本实施方式中的快速查询方法可以应用于管理系统中,其流程如图1所示,具体如下:
步骤101,预设用于表征查询条件的运算符集。
具体的说,运算符集中的运算符可以由用户设定,如可以至少包括以下之一:等于运算符、模糊运算符、大于运算符、小于运算符、包含运算符。运算符也可以利用简单字符表征,如:EQ、ILIKE、LIKE、GE、LE、GT、LT、IN等等,如:EQ代表等于(=),ILIKE代表不区分大小写模糊匹配,GE代表大于等于(>=),LE代表小于等于(<=),GT代表大于(>),LT代表小于(<),IN代表包含。实际应用中,运算符的表达式、运算符的含义可以不同,在此不做限定。
步骤102,预设空缺查询条件的后端查询语句的模板。
具体的说,模板可以根据后端查询语句所用的编程代码撰写,以SQL语言为例,可以是:select*from user where‘查询字段’‘运算符’“查询值”,其中的查询字段、运算符和查询值为空缺的查询条件。
值得一提的是,上述步骤102也可以在步骤101之前执行,两个步骤的先后在此不做限定。
步骤103,在接收到来自前端的查询请求时,解析查询请求。
关于查询请求需要说明的是:查询请求由前端发送,具体包括了用户在使用查询功能时,用户向终端输入的查询字段和查询值,前端根据查询字段和查询值,再结合运算符等生成查询请求,发送给后端。
以用户查询为例:用户名称html表单形式中,用于输入了“张三”,默认的查找规则是在“username”(即用户名)中进行模糊查找,所以前端生成的查询请求包括:<input type="text"name="search__username__like"value="张三">,也就是说,前端发起了“用户名”叫“张三”的查询请求。
关于解析过程需要说明的是:在接收到来自前端的查询请求中,利用预设字符识别出运算符、查询字段和查询值,预设字符可以是“__”,以<input type="text"name="search__username__like"value="张三">为例,第一个“__”后紧跟的是查询字段“username”,第二个“__”后紧跟的是运算符“like”,“value=”后紧跟的是查询值“张三”。可见,识别出的查询条件包括了查询字段“username”、运算符“like”和查询值“张三”。
另外,对应不同的项目可以设置不同的预设字符,以不同的特定字符对应识别相应的项目,实际应用中还可以设置相同的预设字符,以相同的特定字符对应识别相应的项目。
更具体的说,识别运算符时,还可以利用步骤101中预设的运算符集进行识别,若识别出和运算符集相同的字符串,就可以作为识别出的运算符。
步骤104,根据查询条件和模板生成后端查询语句。
具体的说,本实施方式可以先根据预设的对应关系,将查询条件转换为符合后端开发代码的查询条件表达式,再根据符合后端开发代码的查询条件表达式和模板生成后端查询语句。其中,预设的对应关系可以根据查询条件中各项在后端查询代码中的表达式确定。如模糊运算符“LIKE”在后端查询代码中为“LIKE%?%”,?表示“LIKE”针对的查询值。
继续说明的是,本实施方式中生成具体可以利用模板添加的方式,也就是说,将查询条件表达式添加至模板,生成后端查询语句。
步骤105,进行查询。
具体的说,利用步骤104中生成的后端查询语句在数据库中进行查询。
下面以用户查询为例进行说明:
来自前端的查询请求包括:<input type="text"name="search__username__like"value="用户名">,name的值分为三部分,以“__”分隔。
其中,第一部分search代表这个是个查询操作属性;第二部分username代表要查询的字段是username;第三部分like代表运算符,like表示模糊匹配。
假设前端输入的用户名为“张三”,这时前端传递的表单数据为search__username__like=张三,后端系统获取到键值对“key=search__username_like,value=张三”。采用字符串分隔,以“__”把key分隔成三部分,分别是search、username和like,后端解析第一部分的值是search代表这是个查询属性,进而解析第二部分值为查询字段,再解析对应第三部分的值,like就代表需要模糊匹配查询,之后就能转化成相应的查询sql语句:Select*from user where username like“%?%”。此时如果查询需求发生变化,前端开发人员就可以通过修改name的值,也就是查询条件来达到效果。
可见,本实施方式相对于现有技术而言,主要区别及其效果为:改变现有后端查询语句的生成方法,预设空缺查询条件的查询语句模板,由前端提供的查询请求中携带具体的查询条件,且利用预设的模板进行自动转换生成后端所需的数据库查询语句,使得运算符由当次前端的查询请求所指定,变动灵活。避免现有后端查询语句由人为撰写的生成方式,减少在修改前端查询条件后,后端需人为修改查询语句的工作量。可见,本实施方式中的快速查询方法使得后端的查询语句得以自动生成,在修改查询条件时,大大减少后端开发人员的工作量。
值得一提的是,本实施方式中的后端查询代码采用SQL语言,实际应用中也可以采用JAVA语言或其他,在此不再一一举例。
本发明的第二实施方式涉及一种快速查询方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在第一实施方式中,用于识别查询条件中各项目的预设字符为“__”。而在本发明第二实施方式中,预设字符为“--”,可见利用不同的预设字符识别出查询条件,使得字符预设可以根据实际需求设置,灵活多变。
具体的说,预设字符为前端和后端约定的用于识别的字符,可以根据具体需求约定不同的字符,避免在代码中有特定含义的字符,避免混淆。
值得一提的是,上述第一实施方式或第二实施方式在实际应用中可以利用如图2所示的功能架构,具体包括:查询模块、内置模块、解析模块和数据获取模块。
其中,查询模块,可以用于接收来自前端的查询请求。
内置模块,主要是运算符内置,其中包括EQ、ILIKE、LIKE、GE、LE、GT、LT、IN等等。
解析模块,根据对应的运算符生成符合后端查询语句的查询条件,比如LIKE会把语义转成Like%?%,最终生成具体查询sql。
数据获取模块,用于根据生成的sql查询语句进行数据获取或者过滤,并返回最终的数据。
举例说明:查询模块接收到的查询请求中包括:search__username__like=张三,解析模块会把key=search__username__like根据分隔符“__”分隔成多个部分,如果第一部分是search,则代码这是一个查询属性,接着解析第三部分like,根据like去运算符内置模块的内置库查找对应关系(不区分大小写)匹配到LIKE,规则解析就可以根据转化成like%张三%,最终生成sql:Select*from user where username like‘%张三%’,数据获取模块,执行该sql进行数据获取或者过滤,返回最终的真实数据。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种终端,如图3所示,包括:
至少一个处理器;以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一实施方式或第二实施方式中的快速查询方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种快速查询方法,其特征在于,包括:
预设空缺查询条件的后端查询语句的模板;
在接收到来自前端的查询请求时,解析所述查询请求,获得查询条件;
根据所述查询条件和所述模板生成后端查询语句,进行查询;
所述根据所述查询条件和所述后端查询语句的模板生成后端查询语句,具体包括:
根据预设的对应关系,将所述查询条件转换为符合后端开发代码的查询条件表达式;
根据所述符合后端开发代码的查询条件表达式和所述模板生成所述后端查询语句。
2.根据权利要求1所述的快速查询方法,其特征在于,所述解析查询请求,获得查询条件中,所述查询条件包括:运算符、查询字段和查询值。
3.根据权利要求2所述的快速查询方法,其特征在于,所述运算符、所述查询字段和所述查询值分别利用预设字符识别出。
4.根据权利要求3所述的快速查询方法,其特征在于,所述运算符属于预设的运算符集。
5.根据权利要求4所述的快速查询方法,其特征在于,所述运算符集中的运算符由用户预设。
6.根据权利要求1所述的快速查询方法,其特征在于,所述根据符合后端开发代码的查询条件表达式和所述模板生成所述后端查询语句,具体为:
将所述查询条件表达式添加至所述模板,生成所述后端查询语句。
7.根据权利要求1所述的快速查询方法,其特征在于,所述后端查询语句采用SQL语言或JAVA语言。
8.一种终端,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的快速查询方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的快速查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810770122.7A CN109241095B (zh) | 2018-07-13 | 2018-07-13 | 一种快速查询方法、终端和可存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810770122.7A CN109241095B (zh) | 2018-07-13 | 2018-07-13 | 一种快速查询方法、终端和可存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241095A CN109241095A (zh) | 2019-01-18 |
CN109241095B true CN109241095B (zh) | 2021-06-15 |
Family
ID=65072605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810770122.7A Expired - Fee Related CN109241095B (zh) | 2018-07-13 | 2018-07-13 | 一种快速查询方法、终端和可存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241095B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716951B (zh) * | 2019-09-23 | 2022-10-25 | 北京明略软件系统有限公司 | 方便配置的标签配置方法、装置、设备及存储介质 |
CN110674179A (zh) * | 2019-09-24 | 2020-01-10 | 政采云有限公司 | 一种查询接口的生成方法、装置及介质 |
CN112905620A (zh) * | 2019-11-19 | 2021-06-04 | 北京沃东天骏信息技术有限公司 | 数据查询方法及装置、电子设备、存储介质 |
CN111209326B (zh) * | 2020-01-02 | 2023-05-23 | 广州虎牙科技有限公司 | 数据查询方法、装置、电子设备和存储介质 |
CN112286958A (zh) * | 2020-11-16 | 2021-01-29 | 广州速威智能系统科技有限公司 | 数据库查询表达式的处理方法和系统 |
CN112506931A (zh) * | 2020-12-15 | 2021-03-16 | 平安银行股份有限公司 | 数据查询方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443077B1 (en) * | 2010-05-20 | 2013-05-14 | Gogrid, LLC | System and method for managing disk volumes in a hosting system |
CN106649483A (zh) * | 2016-10-08 | 2017-05-10 | 浪潮软件股份有限公司 | 一种数据动态查询的方法及装置 |
-
2018
- 2018-07-13 CN CN201810770122.7A patent/CN109241095B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443077B1 (en) * | 2010-05-20 | 2013-05-14 | Gogrid, LLC | System and method for managing disk volumes in a hosting system |
CN106649483A (zh) * | 2016-10-08 | 2017-05-10 | 浪潮软件股份有限公司 | 一种数据动态查询的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109241095A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241095B (zh) | 一种快速查询方法、终端和可存储介质 | |
CN111209004B (zh) | 代码转换方法及装置 | |
RU2671044C1 (ru) | Способ и устройство для сохранения данных | |
EP3312778A1 (en) | Apparatus program and method for data property recognition | |
WO2020149959A1 (en) | Conversion of natural language query | |
CN110109981B (zh) | 工作队列的信息展示方法、装置、计算机设备和存储介质 | |
CN114416049B (zh) | 结合rpa和ai的服务接口的配置方法及装置 | |
CN110413882B (zh) | 信息推送方法、装置及设备 | |
CN111625273A (zh) | 半导体设备的配置文件修改方法及装置 | |
CN107368500B (zh) | 数据抽取方法及系统 | |
CN111666372A (zh) | 解析查询词query的方法、装置、电子设备和可读存储介质 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN110555178B (zh) | 数据代理方法及装置 | |
CN109033082B (zh) | 语义模型的学习训练方法、装置及计算机可读存储介质 | |
CN116383234A (zh) | 一种搜索语句生成方法、装置、计算机设备及存储介质 | |
CN110489740A (zh) | 语义解析方法及相关产品 | |
US8856152B2 (en) | Apparatus and method for visualizing data | |
CN107491460B (zh) | 适配系统的数据映射方法及装置 | |
CN113468258A (zh) | 一种异构数据的转换方法、装置及存储介质 | |
KR102308521B1 (ko) | 정보 업데이트 방법 및 장치 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN113505143A (zh) | 语句类型的转换方法、装置、存储介质及电子装置 | |
CN113392653A (zh) | 翻译方法、相关装置、设备及计算机可读存储介质 | |
CN110515913B (zh) | 日志处理方法及装置 | |
CN115129825B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210615 |
|
CF01 | Termination of patent right due to non-payment of annual fee |