CN115062051A - 一种通用组装跨数据库语言查询方法和系统 - Google Patents
一种通用组装跨数据库语言查询方法和系统 Download PDFInfo
- Publication number
- CN115062051A CN115062051A CN202210647215.7A CN202210647215A CN115062051A CN 115062051 A CN115062051 A CN 115062051A CN 202210647215 A CN202210647215 A CN 202210647215A CN 115062051 A CN115062051 A CN 115062051A
- Authority
- CN
- China
- Prior art keywords
- query
- database
- condition
- result set
- packaging
- 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
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
-
- 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/2453—Query optimisation
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明本发明属于计算机技术领域,公开了一种通用组装跨数据库语言查询方法,包括依次进行的以下步骤:步骤1:获得前端传入的查询信息,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;步骤2:根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到query条件;步骤3:采用query条件从对应的数据库获取查询后的结果集,所述结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换后发送给前端。基于该方法,前端只需要传入对应的参数跟数据库类型,根据传入的数据进行中间处理后返回对应的数据,本发明支持多种数据库类型查询,动态封装数据库拼装sql逻辑,增强查询效率。
Description
技术领域
本发明属于计算机技术领域,更具体而言,涉及一种通用组装跨数据库语言查询方法和系统。
背景技术
现有的mongodbTemplate跟mybatis-plus只能做单一的msyql或mongodb查询,往往要在查询中封装上一堆逻辑。
在现有技术中,mongodbTemplate对mongodb数据库进行查询的过程为:
建立连接→封装查询json→执行查询语句,并将结果集返回。
参考以下代码:
这是日常查询过程中用mongodbTempate写的查询语句,每一个方法都做了大量的重复性工作,不仅工作量大,还容易出错。
mybatis-plus对msyql数据库进行查询的过程为:
引入配置→创建sqlSessionFactory对象→创建sqlSession对象→SqlSession执行数据库操作→Mappedstatement→执行器执行→返回封装。
现有技术中,并未有非常好的跨数据库的查询方法。
本案要解决的技术问题在于:如何能简单、高效的跨数据库查询。
发明内容
本发明的主要目的在于提供一种通用组装跨数据库语言查询方法,基于该方法,前端只需要传入对应的参数跟数据库类型,根据传入的数据进行中间处理后返回对应的数据,本发明支持多种数据库类型查询,动态封装数据库拼装sql逻辑,增强查询效率。
此外,本发明还提供了实现该方法的系统。
根据本发明的第一方面,提供了一种通用组装跨数据库语言查询方法,包括依次进行的以下步骤:
步骤1:获得前端传入的查询信息,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
步骤2:根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到query条件;
步骤3:采用query条件从对应的数据库获取查询后的结果集,所述结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换后发送给前端。
在上述的通用组装跨数据库语言查询方法中,根据用户设定,在query条件加入分页条件,加入分页条件后,所述结果集为分页后的结果集。
在上述的通用组装跨数据库语言查询方法中,所述查询条件包括条件类型、名字和值;
所述封装参数包括排序位置、字段、正序或倒序;
所述数据返回模式包括名字、数据转换条件、显示栏。
在上述的通用组装跨数据库语言查询方法中,所述数据库类型为mysql数据库、mongodb数据库、MariaDB数据库、Microsoft SQL Server数据库。
同时,本发明公开了一种通用组装跨数据库语言查询系统,包括如下单元:
通信单元:用于获得前端传入的查询信息并将结果集发送给前端,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
query条件生成单元:用于根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到query条件;
结果集生成单元:用于采用query条件从对应的数据库获取查询后的结果集、结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换。
在上述的通用组装跨数据库语言查询系统中,所述query条件生成单元还用于根据用户设定,在query条件加入分页条件;当在query条件中加入分页条件后,所述结果集为分页后的结果集。
在上述的通用组装跨数据库语言查询系统中,所述查询条件包括条件类型、名字和值;
所述封装参数包括排序位置、字段、正序或倒序;
所述数据返回模式包括名字、数据转换条件、显示栏。
在上述的通用组装跨数据库语言查询系统中,所述数据库类型为mysql数据库、mongodb数据库。
本发明上述技术方案中的一个技术方案至少具有如下优点或有益效果之一:
本发明通过在程序上通过前端传入查询文件,判断是那种类型数据库,从而进行该种类型数据库的封装,最后通过统一结果集返回内容。
相比现有技术而言,本发明无需处理sql拼装,只需要传对应参数,就能得到对应的结果。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1是本发明的实施例1的流程图;
图2是本发明的实施例2的结构框图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
实施例1
参考图1,一种通用组装跨数据库语言查询方法,包括依次进行的以下步骤:
步骤1:获得前端传入的查询信息,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
前端的查询条件以json文件的形式存在,具体的示例如下:
其中,matchings为查询条件,其规定了查询的条件类型为在大于、小于、等于、包含等条件;还规定了查询的名字和值;
sorts为封装参数,其规定了结果集中的排序条件,比如字段从哪里开始排序,采用正序还是倒序等;
returnParam为数据返回模式,因为数据库到前端之间需要进行某些数据的转换才能正确的显示。
type为数据库类型。
步骤2:根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到与该数据库类型匹配的query条件中;
针对于mysql数据库来说,封装后的query条件的实现形式为:
针对mongodbl数据库来说,封装后的query条件的实现形式为:
作为进一步的优化,如果用户需要加入分页条件,那么针对于mysql数据库来说,封装后的query条件的实现形式为:
以商品采购信息展示为例,带分页情况例如商品列表,这里面的数据非常多,这种就要用到分页查询;不带分页情况例如购物清单明细,一批购物清单需包含多个商品
步骤3:采用query条件的查询条件从对应的数据库获取查询后的结果集,所述结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换后发送给前端。
通过以上的设计,用户无需处理sql拼装,只需要传对应参数,就能得到对应的结果;
本发明包括但不限于对于mysql、mongodb数据库,从理论上来说,任何数据库都可以采用本发明的方法予以实施。
同时,本发明的实施例针对mongodb的查询大量节省重复性的工作。在封装条件、步骤都是一样的前提下,实现以下两个场景:1.查询商品列表,根据商品id,商品名称过滤条件;2.查询商品列表,根据商品id过滤,并且根据商品的创建时间排序;
如果用mongodbTempate查询,需要写两个查询方法,并且里面的封装逻辑很多都是类似的,在此过程中,一来是操作重复,另外一方面填入数据出错后无法查询结果;使用本发明的方法,只有一个继承方法,继承基类,将对应的json文件传进来,本方法可以自动解析出来,减少重复性的封装工作,减少出错概率。
实施例2
参考图2,一种实施如实施例1实施方法的系统,包括如下单元:
通信单元1:用于获得前端10传入的查询信息并将结果集发送给前端,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
query条件生成单元2:用于根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到query条件;用于根据用户设定,在query条件加入分页条件;当在query条件中加入分页条件后,所述结果集为分页后的结果集;所述数据库类型为mysql数据库、mongodb数据库。
结果集生成单元3:用于采用query条件从对应的数据库如mysql数据库20、mongodb数据库20获取查询后的结果集、结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (8)
1.一种通用组装跨数据库语言查询方法,其特征在于,包括依次进行的以下步骤:
步骤1:获得前端传入的查询信息,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
步骤2:根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到与该数据库类型匹配的query条件中;
步骤3:采用query条件从对应的数据库获取查询后的结果集,所述结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换后发送给前端。
2.根据权利要求1所述的通用组装跨数据库语言查询方法,其特征在于,根据用户设定,在query条件加入分页条件,加入分页条件后,所述结果集为分页后的结果集。
3.根据权利要求1所述的通用组装跨数据库语言查询方法,其特征在于,所述查询条件包括条件类型、名字和值;
所述封装参数包括排序位置、字段、正序或倒序;
所述数据返回模式包括名字、数据转换条件、显示栏。
4.根据权利要求1所述的通用组装跨数据库语言查询方法,其特征在于,所述数据库类型为mysql数据库、mongodb数据库、MariaDB数据库、Microsoft SQL Server数据库。
5.一种通用组装跨数据库语言查询系统,其特征在于,包括如下单元:
通信单元:用于获得前端传入的查询信息并将结果集发送给前端,所述查询信息包含查询条件、封装参数、数据返回模式、数据库类型;
query条件生成单元:用于根据查询信息中的数据库类型,将查询条件、数据返回模式、封装参数封装到query条件;
结果集生成单元:用于采用query条件从对应的数据库获取查询后的结果集、结果集按照封装参数进行处理,并按照数据返回模式对结果集进行数据转换。
6.根据权利要求5所述的通用组装跨数据库语言查询系统,其特征在于,所述query条件生成单元还用于根据用户设定,在query条件加入分页条件;当在query条件中加入分页条件后,所述结果集为分页后的结果集。
7.根据权利要求5所述的通用组装跨数据库语言查询系统,其特征在于,所述查询条件包括条件类型、名字和值;
所述封装参数包括排序位置、字段、正序或倒序;
所述数据返回模式包括名字、数据转换条件、显示栏。
8.根据权利要求5所述的通用组装跨数据库语言查询系统,其特征在于,所述数据库类型为mysql数据库、mongodb数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210647215.7A CN115062051A (zh) | 2022-06-08 | 2022-06-08 | 一种通用组装跨数据库语言查询方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210647215.7A CN115062051A (zh) | 2022-06-08 | 2022-06-08 | 一种通用组装跨数据库语言查询方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115062051A true CN115062051A (zh) | 2022-09-16 |
Family
ID=83199668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210647215.7A Pending CN115062051A (zh) | 2022-06-08 | 2022-06-08 | 一种通用组装跨数据库语言查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062051A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302211A (zh) * | 2023-05-22 | 2023-06-23 | 美云智数科技有限公司 | 策略执行器的配置方法、装置、计算机设备及存储介质 |
-
2022
- 2022-06-08 CN CN202210647215.7A patent/CN115062051A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302211A (zh) * | 2023-05-22 | 2023-06-23 | 美云智数科技有限公司 | 策略执行器的配置方法、装置、计算机设备及存储介质 |
CN116302211B (zh) * | 2023-05-22 | 2023-11-21 | 美云智数科技有限公司 | 策略执行器的配置方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228166B (zh) | 一种基于模板的后端代码生成方法及系统 | |
US5327559A (en) | Remote and batch processing in an object oriented programming system | |
CN106341444B (zh) | 数据访问方法和装置 | |
CN107679071B (zh) | 一种面向关系数据库的通用数据服务定制化封装方法 | |
CN112883095A (zh) | 多源异构数据汇聚的方法、系统、设备以及存储介质 | |
CN110647316B (zh) | 通用业务对象的生成方法、装置、计算机设备及存储介质 | |
CN102426612A (zh) | 条件对象查询方法及系统 | |
CN113076729B (zh) | 用于报表导入的方法及系统、可读存储介质及电子设备 | |
CN115062051A (zh) | 一种通用组装跨数据库语言查询方法和系统 | |
CN115469941A (zh) | 基于FlinkSQL的风控指标计算开发的自动配置处理方法及系统 | |
CN110597851B (zh) | 一种基于大数据的数据处理及报表展示方法 | |
CN112631806A (zh) | 异步消息排列及调度方法、装置、电子设备及存储介质 | |
CN110647564A (zh) | Hive建表方法、电子装置及计算机可读存储介质 | |
CN109522307A (zh) | 服务器、基于Mongodb的保单数据查询方法及存储介质 | |
CN113312034A (zh) | 一种json api动态sql生成方法和系统 | |
CN111190587A (zh) | 一种基于jdbc自动生成工程化前端代码的方法及系统 | |
CN109408577B (zh) | Oracle数据库json解析方法、系统、装置及可存储介质 | |
CN111277464A (zh) | 物联网设备连接测试方法、装置及计算机可读存储介质 | |
CN102479218A (zh) | 通过api接口进行快递查询的方法和服务器 | |
CN111177234A (zh) | 一种文档型数据文件快速处理装置及方法 | |
CN115114321A (zh) | 一种动态查询方法及系统 | |
CN110300371B (zh) | 一种基于物联网设备行为的计算机设备管理方法 | |
CN110515993B (zh) | 税务数据转换方法及系统 | |
CN110647416B (zh) | 一种消息队列跟踪记录方法及系统 | |
CN104572316A (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 |