CN113779068A - 数据查询方法、装置、设备及存储介质 - Google Patents
数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113779068A CN113779068A CN202111071125.XA CN202111071125A CN113779068A CN 113779068 A CN113779068 A CN 113779068A CN 202111071125 A CN202111071125 A CN 202111071125A CN 113779068 A CN113779068 A CN 113779068A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- queried
- query
- identifier
- 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/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据查询方法、装置、设备及存储介质,该查询方法应用于数据处理端,数据处理端设置有MyBatis持久层框架,该方法包括:接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识;若树形数据结构的数据加载方式不是懒加载方式,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在子节点,则将子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;输出查询结果。本申请能够提高数据查询效率。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种数据查询方法、装置、设备及存储介质。
背景技术
在计算机技术中,将数据持久化存储到数据库中之后,可以对数据库中的数据进行查询。
树形数据结构是数据库中的一种数据存储结构,由n(n>0)个有限节点组成的具有层次关系的集合,其n个节点中每个节点包括零个或多个子节点,没有父节点的节点称为根节点,每一个非根节点有且只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树。针对树形数据结构的数据查询,目前采用的是递归方法。递归方法的原理是通过编写一个查询函数,以及重复调用该查询函数实现数据查询。以一次调用查询函数进行数据查询为例,查询函数根据待查询的节点ID进行数据查询,并在每一次数据查询时,在内存栈中保存当前查询的节点ID、当前查询的节点ID对应的查询结果和临时变量,下一次数据查询时首先根据内存栈中存储的节点ID确定其是否存在父节点或子节点,若存在,则继续调用该查询函数针对该父节点或子节点进行数据查询,直至当前查询的节点不存在子节点或父节点,将每次得到的查询结果进行组装并返回。
上述数据查询过程中,查询函数的重复调用,以及在内存栈中存储数据都需要时间,导致数据查询效率低。
发明内容
本申请提供一种数据查询方法、装置、设备及存储介质,用以解决数据查询效率低的问题。
第一方面,本申请提供一种数据查询方法,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述方法包括:接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;输出所述查询结果。
在一些可能的实施方式中,所述方法还包括:若所述待查询节点不存在子节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
在一些可能的实施方式中,所述数据查询请求包括子节点的限制类型参数,所述方法还包括:根据所述子节点的限制类型参数在数据库中进行查询,得到所述子节点的限制类型参数对应的结果列的标识;将所述结果列的标识和所述子节点的限制类型参数作为嵌套查询的条件参数,得到所述子节点的限制类型参数对应的查询数据;返回所述子节点的限制类型参数对应的查询数据。
在一些可能的实施方式中,所述方法还包括:若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的子节点进行查询的请求,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
第二方面,本申请提供一种数据查询方法,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述方法包括:接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果;输出所述查询结果。
在一些可能的实施方式中,所述方法还包括:若所述待查询节点不存在父节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
在一些可能的实施方式中,所述方法还包括:若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的父节点进行查询的请求,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
第三方面,本申请提供一种数据查询装置,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述装置包括:接收模块,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;确定模块,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;输出模块,用于输出所述查询结果。
第四方面,本申请提供一种数据查询装置,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述装置包括:接收装置,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;确定模块,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果;输出模块,用于输出所述查询结果。
第五方面,本申请提供一种电子设备,包括:存储器,处理器;存储器,用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为实现如第一方面所述的方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
本申请提供的数据查询方法、装置、设备及存储介质,通过接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识,若所述树形数据结构的数据加载方式不是懒加载方式,则根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在子节点,则将子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果并输出的手段,实现提高数据查询效率的效果。具体的,由于是根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,并在待查询节点存在子节点的情况下,将子节点的标识确定为新的待查询节点的标识重复进行查询,该查询过程为迭代查询过程,如此可以解决递归查询中需要重复调用查询函数,以及在内存栈中存储数据耗时较大,导致数据查询效率低的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术的通过递归算法进行数据查询的流程图;
图2为适用于本申请实施例的数据查询方法的应用场景图;
图3为本申请实施例提供的数据查询方法的流程图;
图4为本申请实施例提供的树形数据结构的示意图;
图5为本申请实施例提供的图形用户界面的示意图;
图6为本申请实施例提供的另一种数据查询方法的流程图;
图7为本申请实施例提供的数据查询装置的结构示意图;
图8为本申请实施例提供的另一种数据查询装置的结构示意图;
图9为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
术语解释:
MyBatis:是一个Java持久化框架,通过XML描述符或注解把对象与存储过程或SQL语句关联起来,映射成数据库内对应的记录。
XML映射器:是MyBatis的语句映射,相较于具有相同功能的Java数据库连接(JavaDatabase Connectivity,JDBC)代码进行对比,能够节省将近95%的代码,让用户能更专注于SQL代码。
动态SQL:可以根据传入的参数,利用提供的标签将SQL进行拼接。相较于JDBC或其它类似的框架,在根据不同条件拼接SQL语句时,不再需要关注,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号等事项。
结构化查询语言(Structured Query Language,SQL):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SELECT:是SQL数据操纵语言((Data Manipulation Language,DML)中用于查询表格内字段数据的指令。
加载:在计算机相关领域中,是指硬盘上的有用程序调到内存中的过程。因为所有软件要运行就必须加载到内存,加载就是把需要的文件及信息读取到内存中去,一般在启动程序或安装程序时会有加载。
嵌套查询:利用一次查询发送多条sql语句,格式为1+n条sql语句,包括1条主sql查询语句,还有多条关联查询语句。
树形数据结构是一类重要的非线性数据结构。树形数据结构可以表示数据表素之间一对多的关系。其中以树与二叉树最为常用,直观看来,树是以分支关系定义的层次结构。树形数据结构在客观世界中广泛存在,如人类社会的族谱、各种社会组织机构、商品分类、游戏词条分类都可以使用树形数据结构进行表示。
在不同的业务场景中,针对树形数据结构的数据查询方式包括由上往下的查询和由下往上的查询。
以物品的分类为例,品类-(食品、家电)-家电(电视、电脑、风扇)的顺序为由上往下的数据查询。
但是,针对当前显示位置“电脑”(其树形数据结构为:品类-家电-电脑),如果用户直接点击进入“电脑”的详情页,就会请求从下往上的接口,找到“电脑”对应的父级节点。此时,是由下往上的数据查询。
以由上往下的数据查询为例,针对树形数据结构的数据查询,目前主流的方式是使用递归算法进行数据查询。
图1为现有技术的通过递归算法进行数据查询的流程图。
如图1所示,通过递归算法进行数据查询的步骤包括:
S101、将父节点的身份标识号(Identity Document,ID)当作方法参数传入“查询方法”。
S102、根据父节点ID进行数据查询,得到父节点ID对应的数据查询结果。
S103、判断当前父节点是否存在子节点。
S104、如果当前父节点拥有子节点,则将子节点遍历并把子节点Id作为方法参数继续调用“查询方法”。
S105、如果当前父节点没有子节点,则组装节点对象属性。
S106、返回对象,并结束。
在上述数据查询过程中,通过“查询方法”进行数据查询是函数调用的过程,而函数的调用本身是较为消耗时间和空间的。例如,每一次的函数调用,都需要在内存栈中分配空间以保存参数、返回值(当前查询节点对应的查询结果)和临时变量,而往内存栈中压入和弹出数据也需要时间,因而数据查询效率低。
另外,由于内存栈的空间容量是有限的,当树形数据结构的根较深,函数调用的次数也会增多,如此就可能会超出内存栈的容量,从而造成调用栈溢出,导致数据查询失败。
为了解决上述技术问题,本申请提出如下技术构思:基于Mybatis的XML映射器,在查询到第一层结果后,根据第一层结果中的“节点Id”或“父节点Id”结合“集合的嵌套Select查询”或“关联的嵌套Select查询”实现嵌套查询“子节点集合”或“父节点数据”。通过判断SQL查询结果中的指定参数是否为空指针(null),以确定是否进行SQL查询的迭代。SQL查询的迭代节省了保存参数、返回值(当前查询节点对应的查询结果)和临时变量的过程,因此,能够减少时间的消耗和对栈内存的空间占用,提高数据查询效率。
图2为适用于本申请实施例的数据查询方法的应用场景图。如图2所示,该应用场景包括:客户端1、数据处理端2和数据库3;客户端1与数据处理端2通信连接,数据处理端2与数据库3通信连接。
在一些可选的实施方式中,数据处理端2可以是MyBatis框架,MyBatis框架是基于Java的持久层框架。持久层是指可以将业务数据存储到磁盘(即存储到数据库3),磁盘具备长期存储能力,只要磁盘不损坏,在断电或者其他情况下,重新开启系统仍然可以读取到这些数据。MyBatis框架具体包括:接口层21、数据处理层22和基础支撑层23。
其中,接口层21包括数据查询接口211、数据新增接口212、数据更新接口213、数据删除接口214和获取配置接口215。
接口层21是提供给外部使用的应用程序接口(Application ProgrammingInterface,API)。客户端1通过调用数据查询接口211可以实现数据查询功能;客户端1通过调用数据新增接口212可以实现在数据库3中新增数据的功能;客户端1通过调用数据更新接口213可以实现对数据库3中数据进行更新的功能;客户端1通过调用数据删除接口214可以实现对数据库3中数据进行删除的功能。
接口层21接收到调用请求,调用请求包括数据处理类型,即数据查询、数据新增、数据更新和数据删除;进而调用数据处理层22在数据库中进行一次与数据处理类型对应的数据操作。
基础支撑层23负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理等。
针对不同的数据处理类型,基础支撑层23都是共用的,因而将其抽取出来作为最基础的组件,从而为上层的数据处理层提供最基础的支撑。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
基于图2所示的应用场景,图3为本申请实施例提供的数据查询方法的流程图。如图3所示,该数据查询方法为由上往下的数据查询方法,具体包括如下步骤:
S301、接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识。
本实施例的执行主体为数据处理端2,数据处理端2接收客户端1发送的数据查询请求。
请继续参阅图2,具体是由数据查询接口211接收客户端1发送的数据查询请求。
客户端1发送的数据查询请求通常包括关键字,该关键字为树形数据结构中某一个节点(除最后一层节点之外的其他节点)的关键字,数据查询接口211将关键字发送至数据处理层,数据处理层的参数配置模块首先根据关键字,以及参数映射配置(关键字、待查询节点的ID与SQL的ID之间的映射关系),得到待查询节点的标识和SQL的ID。
其中,Mybatis将查询数据库的SQL封装为了一个方法,该方法存在于一个由Java动态代理生成的代理类中。通常是根据名称和参数(关键字)去标识这个方法。所以客户端1调用查询/修改/删除接口的时候,根据关键字就可以确定接口名称。
S302、若树形数据结构的数据加载方式不是懒加载方式,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在子节点,则将子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果。
本实施例中,通过在mybatis框架提供的查询结果的映射处理器中设置关联查询,实现根据待查询数据节点的标识,查询待查询节点以及待查询节点的子节点。具体的,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点可以理解为是主查询,而对待查询节点的子节点进行查询为关联查询。
图4为本申请实施例提供的树形数据结构的示意图。如图4所示,该树形数据结构包括:根节点,根节点标识为1,根节点对应的数据为老师;父节点,父节点的标识包括11和12,父节点11对应的数据为语文老师,父节点12对应的数据为数学老师;子节点,子节点的标识包括111、112、121、122,子节点111对应的数据为一年级语文老师,子节点112对应的数据为二年级语文老师,子节点121对应的数据为一年级数学老师,子节点122对应的数据为二年级数学老师。
则若待查询节点的标识为1,本步骤是以“当前节点id=子节点parent_id”作为查询条件。例如,待查询节点id是1,查找parent_id=1的节点。
假设数据库的教师表如下表1所示:
表1
id | parent_id | name |
1 | 0 | 老师 |
11 | 1 | 语文老师 |
12 | 1 | 数学老师 |
111 | 11 | 一年级语文老师 |
112 | 11 | 二年级语文老师 |
121 | 12 | 一年级数学老师 |
122 | 12 | 二年级数学老师 |
第一步:针对查询id=1及其子节点的数据查询请求,最初查到的数据如下表2所示:
表2
id | parent_id | name |
1 | 0 | 老师 |
第二步:将id=1作为参数,查询parent_id=1的数据,查到的数据如下表3所示:
表3
id | parent_id | name |
11 | 1 | 语文老师 |
12 | 1 | 数学老师 |
第三步:将id=11作为参数,查询parent_id=11的数据,查到的数据如下表4所示:
表4
id | parent_id | name |
111 | 11 | 一年级语文老师 |
112 | 11 | 二年级语文老师 |
以及将id=12作为参数,查询parent_id=12的数据,查到的数据如下表5所示:
表5
id | parent_id | name |
121 | 12 | 一年级数学老师 |
122 | 12 | 二年级数学老师 |
上述查询的结果数据根据节点之间的关系进行组装,并存储在id=1的对象中,得到查询结果,其查询结果包括图4中每个节点的数据。
可以看出,上述三步的查询过程为迭代查询的过程。
针对待查询节点的标识11的数据查询过程,与上述数据查询过程类似,其区别在于查询的起点不同。
若待查询节点不存在父节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
S303、输出查询结果。
具体的,是将查询结果加载至内存,并且在客户端进行展示。
本实施例通过接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在子节点,则将子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果并输出的手段,实现提高数据查询效率的效果。具体的,由于是根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,并在待查询节点存在子节点的情况下,将子节点的标识确定为新的待查询节点的标识重复进行查询,该查询过程为迭代查询过程,如此可以解决递归查询中需要重复调用查询函数,以及在内存栈中存储数据耗时较大,导致数据查询效率低的问题。
针对一个父节点,其可以包括多个子节点,在Java对象中的体现就是拥有一个子类集合。
对于数据库数据进行从上往下的检索,通常使用<select>(用于加载复杂类型属性的映射语句的ID,其会从column属性中指定的列检索数据,作为参数传递给此select语句)标签中的resultType属性指定其返回结果的类全限定名或别名。若需要在返回的结果当中包含复杂类型时,需要通过<resultMap>标签描述如何从数据库结果集中加载对象。
在<resultMap>标签中,可以指定一个<collection>标签来接收子节点的集合。
在<collection>标签中,首先通过property属性指定接收子类集合的对象属性名称,然后把column(数据库中的列名,或者是列的别名。)属性设置为SQL语句中的Id(默认Id是主键),最后把select属性设置为原查询语句的Id。如此,即可实现通过父节点Id作为参数,无限嵌套查询其所有子节点。嵌套查询会在column属性的所有参数都为null的时候终止查询。
通过上述标签的设置,数据处理层在接收到数据查询请求时,则会根据上述标签的设置进行数据查询。数据处理层如何根据上述标签进行数据查询,可以参见Mybatis中数据处理层进行数据查询的过程。
在日常开发中,除了普通的嵌套查询外,往往还会针对子节点的类型添加限制。目前的常规操作是查询完所有数据后,再在所有数据中进行过滤筛选,即将所有数据都查询出来加载到内存中,再从内存中筛选出来需要的数据进行输出。如此,不仅浪费了更多的输入/输出(Input/Output,I/O)资源去加载无用的数据,同时也需要编写额外的筛选逻辑代码,存在加载无用数据的缺陷。仍然以表1为例,若用户需要查询节点id为11的数据,则是将表1中name列的所有数据都加载到内存中,再从内存中筛选出来节点id为11的数据,这无疑会造成大量无用数据的加载。针对该问题,本申请可以提供如下实施例进行解决:
在一些可选的实施方式中,数据查询请求还包括子节点的限制类型参数,本实施例的方法还包括:
a1、根据子节点的限制类型参数在数据库中进行查询,得到子节点的限制类型参数对应的结果列的标识。
举例来说,若需要在家电中查找电视,则限制类型参数可以是品牌名称。
a2、将结果列的标识和子节点的限制类型参数作为嵌套查询的条件参数,得到子节点的限制类型参数对应的查询数据。
a3、返回子节点的限制类型参数对应的查询数据。
仍然以表1为例,若用户需要查询节点id为11的数据,则本实施例是在表1中筛选出来id为11的数据(语文老师)加载到内存。
下面通过一个具体的示例对上述步骤进行解释:
以问题ID作为参数,传入方法getQuestionWithChildById中。
第一步:将问题Id和子类型(child SubType)作为参数,执行id为getQuestionWithChildById的<select>标签语句,并返回结果列,该结果列是子类型对应的数据表的列的ID。
本步骤可以理解为是将子节点的限制类型参数当作某一列在父节点的查询SQL语句中检索出来,即父节点的查询SQL语句的检索结果为子节点的限制类型参数在数据表中的列ID。
第二步:返回的结果将由id为QuestionWithChild的<resultMap>标签进行映射。
第三步:在<resultMap>标签内的<collection>标签中,以结果列id和子类型的值作为问题Id和子类型的参数,传入id为getQuestionWithChildById的<select>语句并执行,直至结果为空。
具体的,是在<collection>标签的column属性中,通过column=‘{param1=column1,param2=column2}‘的形式传递多个参数到嵌套查询的SQL语句中。并且在SQL语句中利用<if>标签对参数进行判空,得到检索结果。
为了方便读者理解,下面将通过一个具体的示例对本实施例进行详细介绍:
假设节点数据是同学,则没有添加子节点的限制类型参数之前,需要先将班里的全部男同学加载到内存,再筛选出学号结尾是1的男同学留下。如此,会导致加载浪费学号结尾不是1的同学,并且还会占用额外的内存空间。本实施例在select中传入参数可以理解为,select语句直接实现将班里面学号是1结尾的男同学加载到内存。具体的,取班里面{}同学到操场的SQL语句模板,若不加条件,即没有在SQL语句模板中传入参数,则是将班里面所有同学加载到内存,若设置条件,即SQL语句的格式为:班里面{学号是1结尾的男}同学加载至内存,则是将班里面{学号是1结尾的男}同学加载至内存。其中,学号是1结尾为一个参数,性别男是一个参数。
本实施例是通过在select的嵌套中传入子节点的限制类型参数,从而一次性将需要的数据查询出来,再加载至内存,如此,就可以解决将所有数据都查询出来加载到内存中,再从内存中筛选出来需要的数据进行输出,导致的不仅浪费更多的输入/输出(Input/Output,I/O)资源去加载无用的数据,还需要编写额外的筛选逻辑代码,导致加载无用数据的问题。
在上述实施例中,其采用关联的嵌套查询,则在查询待查询节点的数据时,会关联查询出子节点的数据,并将待查询节点的数据和子节点的数据都加载至内存。然而,若树的深度过大就会占用较大内存空间,从而可能引起内存栈溢出的问题。针对该问题,本申请还可以通过设置懒加载的方式进行按需加载。具体包括:若所述树形数据结构的数据加载方式为懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的子节点进行查询的请求,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
相较于图3所示的实施例,图3所示的实施例是将待查询节点以及待查询节点的所有子节点的数据均查询出来,并加载至内存,当用户对待查询节点和待查询节点的所有子节点中的某个节点进行调用时,直接从内存中获取该被调用节点的数据并在客户端进行显示。而设置了懒加载之后,是根据用户的调用需求,按需加载,即只针对用户发起的查询请求中的待查询节点进行查询,并将查询结果加载至内存,而当用户发起对待查询节点的子节点的查询请求时,才对待查询节点的子节点进行查询,否则不对待查询节点的子节点进行查询。如此,就可以避免树的深度较大时,将所有树结构数据都加载至内存,造成占用内存空间较大,导致内存溢出的问题。
下面通过一个具体的示例对本实施例进行解释:
具体的,可以在客户端的图形用户界面中显示待查询节点对应的控件,用户对待查询节点的子节点的操作可以是用户对待查询节点的子节点的点击操作。
图5为本申请实施例提供的图形用户界面的示意图。如图5所示,图形用户界面中包括老师这一节点数据,该节点数据在图形用户界面中对应有控件。在初始状态下,会将老师这一节点数据加载至内存,当用户点击老师对应的控件时,才会将语文老师和数学老师的节点数据加载至内存。从用户视角来看,就是初始状态下,仅显示老师(图5中箭头左边的附图示出),当用户点击老师之后,再显示语文老师和数学老师(图5中箭头右边的附图示出)。
基于图2所示的应用场景,图6为本申请实施例提供的另一种数据查询方法的流程图。如图6所示,该数据查询方法为由下往上的数据查询方法,具体包括如下步骤:
S601、接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识。
本实施例的执行主体为数据处理端2,数据处理端2接收客户端1发送的数据查询请求。
请继续参阅图2,具体是由数据查询接口211接收客户端1发送的数据查询请求。
客户端1发送的数据查询请求通常包括关键字,该关键字为树形数据结构中某一个节点(除根节点之外的其他节点)的关键字,数据查询接口211将关键字发送至数据处理层,数据处理层的参数配置模块首先根据关键字,以及参数映射配置(关键字、待查询节点的ID与SQL的ID之间的映射关系),得到待查询节点的标识和SQL的ID。
S602、若树形数据结构的数据加载方式不是懒加载方式,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在父节点,则将父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果。
本实施例中,是通过在mybatis框架提供的查询结果的映射处理器中设置关联查询,实现根据待查询数据节点的标识,查询待查询节点以及待查询节点的父节点。具体的,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点可以理解为是主查询,而对待查询节点的父节点进行查询为关联查询。
请继续参阅图4以及表1,若待查询节点的标识为111,本步骤是以“当前节点parent_id=父节点id”作为查询条件。例如,当前节点的parent_Id是111,查找id=11的节点。
第一步:针对查询parent_Id=111及其父节点的数据查询请求,最初查到的数据如表6所示:
表6
parent_id | id | name |
111 | 11 | 语文老师 |
第二步:将id=11作为参数,查询parent_id=11的数据,查到的数据如下表7所示:
表7
parent_id | id | name |
11 | 1 | 老师 |
第三步:将id=1作为参数,查询parent_id=1的数据,查到的数据如下表8所示:
表8
parent_id | id | name |
1 | 0 | 老师 |
此时,id=0,代表查询结果为空指针,则结束。
上述查询的结果数据根据节点之间的关系进行组装,并存储在parent_id=111的对象中,得到查询结果。
若待查询节点不存在父节点,则将根据待查询节点查询得到的数据,确定为查询结果。
S603、输出查询结果。
具体的,是将查询结果加载至内存,并且在客户端进行展示。
本实施例中,每个子节点最多有且仅有一个父节点,在Java对象中的体现就是拥有一个父节点对象。
对于数据库数据进行从下往上的检索,与“从上往下的检索”不同的是,对象所包含的子节点集合变成了父节点对象。此时可以将<collection>标签替换为<association>标签映射父节点对象。
在<association>标签中,可以将property属性设置为对象中父节点对象属性的名称,然后把column属性设置为父节点Id,最后把select属性设置为原查询语句的Id。如此,即可实现通过子节点Id作为参数,无限嵌套查询其父节点。嵌套查询会在column属性的所有参数都为null的时候终止查询。
本实施例通过接收数据查询请求,数据查询请求包括树形数据结构中待查询节点的标识,根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,若待查询节点存在父节点,则将父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果并输出的手段,实现提高数据查询效率的效果。具体的,由于是根据待查询数据节点的标识,从树形数据结构中确定出待查询节点,并在待查询节点存在父节点的情况下,将父节点的标识确定为新的待查询节点的标识重复进行查询,该查询过程为迭代查询过程,如此可以解决递归查询中需要重复调用查询函数,以及在内存栈中存储数据耗时较大,导致数据查询效率低的问题。
在从下往上的检索中,同样是采用关联的嵌套查询,则在查询待查询节点的数据时,会关联查询出父节点的数据,并将待查询节点的数据和父节点的数据都加载至内存。然而,若树的深度过大就会占用较大内存空间,从而可能引起内存栈溢出的问题。针对该问题,本申请还可以通过设置懒加载的方式进行按需加载。具体包括:若所述树形数据结构的数据加载方式为懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的父节点进行查询的请求,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
相较于图6所示的实施例,图6所示的实施例是将待查询节点以及待查询节点的父节点的数据均查询出来,并加载至内存,当用户对待查询节点和待查询节点的父节点进行调用时,直接从内存中获取该被调用节点(待查询节点的父节点)的数据并在客户端进行显示。而设置了懒加载之后,是根据用户的调用需求,按需加载,即只针对用户发起的查询请求中的待查询节点或待查询节点的父节点进行查询,并将查询结果加载至内存,否则不对待查询节点的父节点进行查询。如此,就可以避免树的深度较大时,将所有树结构数据都加载至内存,造成占用内存空间较大,导致内存溢出的问题。
在上述方法实施例的基础上,图7为本申请实施例提供的数据查询装置的结构示意图。如图7所示,该数据查询装置包括:接收模块71、确定模块72和输出模块73;其中,接收模块71,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;确定模块72,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;输出模块73,用于输出所述查询结果。
在一些可能的实施方式中,确定模块72,还用于:若所述待查询节点不存在子节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
在一些可能的实施方式中,所述数据查询请求包括子节点的限制类型参数,所述装置还包括:查询模块74;查询模块74,具体用于:根据所述子节点的限制类型参数在数据库中进行查询,得到所述子节点的限制类型参数对应的结果列的标识;将所述结果列的标识和所述子节点的限制类型参数作为嵌套查询的条件参数进行嵌套查询,得到所述子节点的限制类型参数对应的查询数据;输出模块73,还用于返回所述子节点的限制类型参数对应的查询数据。
在一些可能的实施方式中,所述确定模块72,还用于:若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的子节点进行查询的请求,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
在上述方法实施例的基础上,图8为本申请实施例提供的另一种数据查询装置的结构示意图。如图8所示,该数据查询装置包括:接收模块81、确定模块82和输出模块83;
接收模块81,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;
确定模块82,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果;
输出模块83,用于输出所述查询结果。
在一些可能的实施方式中,确定模块82,还用于:若所述待查询节点不存在父节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
在一些可能的实施方式中,所述确定模块82还用于:若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;响应于对所述待查询节点的父节点进行查询的请求,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识;根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
本申请实施例提供的数据查询装置,可用于执行上述实施例中数据查询方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块72、确定模块83可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块72、确定模块83的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图9为本申请实施例提供的电子设备的结构示意图。如图9所示,该计算机设备可以包括:接收器90、发送器91、处理器92、存储器93。
处理器92执行存储器存储的计算机执行指令,使得处理器92执行上述实施例中的方案。处理器92可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器93通过系统总线与处理器92连接并完成相互间的通信,存储器93用于存储计算机程序指令。
接收器90可以用于接收数据查询请求。
发送器91可以用于返回数据查询结果。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可以是上述实施例的数据处理端。
本申请实施例提供的电子设备,可用于执行上述实施例中数据查询方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中数据查询方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例中数据查询方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中数据查询方法的技术方案。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种数据查询方法,其特征在于,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述方法包括:
接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;
若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;
输出所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述待查询节点不存在子节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
3.根据权利要求1或2所述的方法,其特征在于,所述数据查询请求包括子节点的限制类型参数,所述方法还包括:
根据所述子节点的限制类型参数在数据库中进行查询,得到所述子节点的限制类型参数对应的结果列的标识;
将所述结果列的标识和所述子节点的限制类型参数作为嵌套查询的条件参数,得到所述子节点的限制类型参数对应的查询数据;
返回所述子节点的限制类型参数对应的查询数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;
响应于对所述待查询节点的子节点进行查询的请求,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,并根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;
将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
5.一种数据查询方法,其特征在于,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述方法包括:
接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;
若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果;
输出所述查询结果。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述待查询节点不存在父节点,则将根据所述待查询节点查询得到的数据,确定为查询结果。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
若所述树形数据结构的数据加载方式是懒加载方式,则根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点;
响应于对所述待查询节点的父节点进行查询的请求,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,并根据所述新的待查询数据节点的标识,从所述树形数据结构中确定出新的待查询节点;
将根据所述待查询节点查询得到的数据和根据所述新的待查询节点查询得到的数据进行组装,得到查询结果。
8.一种数据查询装置,其特征在于,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;
确定模块,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在子节点,则将所述子节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在子节点,将每次查询得到的数据进行组装,得到查询结果;
输出模块,用于输出所述查询结果。
9.一种数据查询装置,其特征在于,应用于数据处理端,所述数据处理端设置有MyBatis持久层框架,所述装置包括:
接收装置,用于接收数据查询请求,所述数据查询请求包括树形数据结构中待查询节点的标识;
确定模块,用于若所述树形数据结构的数据加载方式不是懒加载方式,根据所述待查询数据节点的标识,从所述树形数据结构中确定出待查询节点,若所述待查询节点存在父节点,则将所述父节点的标识确定为新的待查询节点的标识,重复本步骤直至新的待查询节点不存在父节点,将每次查询得到的数据进行组装,得到查询结果;
输出模块,用于输出所述查询结果。
10.一种电子设备,其特征在于,包括:存储器,处理器;
存储器,用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为实现如权利要求1-7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111071125.XA CN113779068B (zh) | 2021-09-13 | 2021-09-13 | 数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111071125.XA CN113779068B (zh) | 2021-09-13 | 2021-09-13 | 数据查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779068A true CN113779068A (zh) | 2021-12-10 |
CN113779068B CN113779068B (zh) | 2023-09-12 |
Family
ID=78843285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111071125.XA Active CN113779068B (zh) | 2021-09-13 | 2021-09-13 | 数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779068B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628272A (zh) * | 2023-07-24 | 2023-08-22 | 海看网络科技(山东)股份有限公司 | 一种基于vue框架的树形结构节点快速选择方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015110062A1 (zh) * | 2014-01-26 | 2015-07-30 | 华为技术有限公司 | 一种分布式数据存储方法、装置和系统 |
CN109298905A (zh) * | 2018-08-15 | 2019-02-01 | 深圳点猫科技有限公司 | 利用前端编程语言优化图片懒加载的方法以及电子设备 |
WO2019051946A1 (zh) * | 2017-09-13 | 2019-03-21 | 平安科技(深圳)有限公司 | 节点任务数据显示方法、装置、存储介质和计算机设备 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
CN112632333A (zh) * | 2020-12-17 | 2021-04-09 | 杭州迪普科技股份有限公司 | 查询语句生成方法、装置、设备及计算机可读存储介质 |
CN112948418A (zh) * | 2021-02-25 | 2021-06-11 | 平安普惠企业管理有限公司 | 动态查询方法、装置、设备及存储介质 |
-
2021
- 2021-09-13 CN CN202111071125.XA patent/CN113779068B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015110062A1 (zh) * | 2014-01-26 | 2015-07-30 | 华为技术有限公司 | 一种分布式数据存储方法、装置和系统 |
WO2019051946A1 (zh) * | 2017-09-13 | 2019-03-21 | 平安科技(深圳)有限公司 | 节点任务数据显示方法、装置、存储介质和计算机设备 |
CN109298905A (zh) * | 2018-08-15 | 2019-02-01 | 深圳点猫科技有限公司 | 利用前端编程语言优化图片懒加载的方法以及电子设备 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
CN112632333A (zh) * | 2020-12-17 | 2021-04-09 | 杭州迪普科技股份有限公司 | 查询语句生成方法、装置、设备及计算机可读存储介质 |
CN112948418A (zh) * | 2021-02-25 | 2021-06-11 | 平安普惠企业管理有限公司 | 动态查询方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
匿名: "mybatis递归查询所有子节点", pages 1 - 7, Retrieved from the Internet <URL:https://blog.csdn.net/QQ_1094428625/article/details/82767340> * |
秦怀杂货店: "Mybatis 懒加载", pages 1 - 7, Retrieved from the Internet <URL:https://blog.51cto.com/u_13604316/2729948> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628272A (zh) * | 2023-07-24 | 2023-08-22 | 海看网络科技(山东)股份有限公司 | 一种基于vue框架的树形结构节点快速选择方法 |
CN116628272B (zh) * | 2023-07-24 | 2023-10-20 | 海看网络科技(山东)股份有限公司 | 一种基于vue框架的树形结构节点快速选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113779068B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228817B (zh) | 数据处理方法、装置和系统 | |
CN110291517B (zh) | 图数据库中的查询语言互操作性 | |
CN107480198B (zh) | 一种分布式NewSQL数据库系统和全文检索方法 | |
US10055509B2 (en) | Constructing an in-memory representation of a graph | |
US6587856B1 (en) | Method and system for representing and accessing object-oriented data in a relational database system | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US7693911B2 (en) | Uniform metadata retrieval | |
US7269593B2 (en) | Data processing apparatus and method | |
US8108360B2 (en) | Database object update order determination | |
US20090319499A1 (en) | Query processing with specialized query operators | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
US10783142B2 (en) | Efficient data retrieval in staged use of in-memory cursor duration temporary tables | |
WO2022257390A1 (zh) | 数据处理方法、服务器及存储介质 | |
CN114064684B (zh) | 一种异构数据源的统一访问方法 | |
CN110134335B (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
CN111708805A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN110807028B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN114090695A (zh) | 分布式数据库的查询优化的方法和装置 | |
CN113779068B (zh) | 数据查询方法、装置、设备及存储介质 | |
US11657088B1 (en) | Accessible index objects for graph data structures | |
CN112835638A (zh) | 一种基于嵌入式应用程序的配置信息管理方法及装置 | |
WO2024016789A1 (zh) | 日志数据查询方法、装置、设备和介质 | |
WO2020192663A1 (zh) | 一种数据管理方法及相关设备 | |
US12001458B2 (en) | Multi-cloud object store access |
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 |