CN110717074A - 对象持久化方法、装置、介质和系统 - Google Patents
对象持久化方法、装置、介质和系统 Download PDFInfo
- Publication number
- CN110717074A CN110717074A CN201910915297.7A CN201910915297A CN110717074A CN 110717074 A CN110717074 A CN 110717074A CN 201910915297 A CN201910915297 A CN 201910915297A CN 110717074 A CN110717074 A CN 110717074A
- Authority
- CN
- China
- Prior art keywords
- sub
- library
- name
- database
- persistence
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种对象持久化方法,该方法可以包括:接收对象持久化请求,其中,对象持久化请求中包括对象要存储的数据库的分库名称,从对象持久化请求中提取对象要存储的数据库的分库名称;根据分库名称判断分库是否存在;在分库存在的情况下,将对象存储到分库中,以及在分库不存在的情况下,新建分库,并将对象存储到新建的分库中。此外,本申请还涉及一种对象持久化装置、介质和系统。本申请通过动态分库技术可以大幅度地提高数据库查询数据的效率,满足用户根据需求动态地建立分库。
Description
技术领域
本申请涉及一种对象持久化方法、装置、介质和系统。
背景技术
在大型的互联网应用中,数据量通常是非常庞大的,当一张表的数据达到几千万时,查询一次所花的时间会变长。数据量的庞大会伴随着非常高的读写并发,容易突破单个数据库实例的性能上限。
分库分表的思想是把一个数据库分成多个部分,存放在多个数据库上,把一个大表拆成多张小表,从而有效缓解单个数据库或者单个表的读写压力,让数据库服务获得无限扩展的能力,从而有效地减小数据库的负担,提高数据库的效率,缩短查询时间。
发明内容
目前的数据库大多仅支持静态建立分库,在对象持久化时,需要事先手动创建分库,而本申请的目的则是提供一种在对象持久化时动态创建分库的方案。
本申请的第一方面提供了一种对象持久化方法,该方法可以包括:接收对象持久化请求,其中,对象持久化请求中包括对象要存储的数据库的分库名称,从对象持久化请求中提取对象要存储的数据库的分库名称;根据分库名称判断分库是否存在;在分库存在的情况下,将对象存储到分库中,以及在分库不存在的情况下,新建分库,并将对象存储到新建的分库中。
本申请通过在对象持久化请求中拼接分库名称,并根据分库名称动态创建分库,省去了手动创建分库的操作,提高了分库效率。
进一步,上述分库可以是对象所对应的默认分库,分库名称可以是对象所对应的默认分库的名称。
或者,上述分库可以是对象所对应的非默认分库,分库名称可以是对象所对应的非默认分库的名称;其中,非默认分库的名称包括对象所对应的默认分库的名称和后缀。
进一步,从对象持久化请求中提取对象要存储的数据库的分库名称可以包括:从对象持久化请求中提取后缀,并将后缀存储到线程局部变量中;和将默认分库的名称和后缀拼接,得到非默认分库的名称。
进一步,该方法还可以包括判断对象能否得到数据库的支持的操作;并在对象能够得到数据库的支持的情况下,执行根据分库名称判断分库是否存在的操作。
进一步,数据库可以为视图库,能够得到数据库支持的对象包括:人脸、车辆、物品、街道和/或图像等中的至少一种。
进一步,对象持久化方法可以在Spring框架下执行。
本申请通过动态分库技术可以大幅度地提高数据库查询数据的效率,满足用户根据需求动态地建立分库。
本申请的第二方面提供了一种对象持久化装置,该装置可以包括:请求接收模块,用于接收对象持久化请求,其中,对象持久化请求中包括对象要存储的数据库的分库名称;分库名称提取模块,用于从对象持久化请求中提取对象要存储的数据库的分库名称;第一判断模块,用于根据分库名称判断分库是否存在;持久化模块,用于在分库存在的情况下,将对象存储到分库中,以及在分库不存在的情况下,新建分库,并将对象存储到新建的分库中。
进一步,上述分库可以是对象所对应的默认分库,分库名称可以是对象所对应的默认分库的名称。
或者,上述分库可以是对象所对应的非默认分库,分库名称可以是对象所对应的非默认分库的名称;其中,非默认分库的名称包括对象所对应的默认分库的名称和后缀。
进一步,分库名称提取模块可以用于:从对象持久化请求中提取后缀,并将后缀存储到线程局部变量中;和将默认分库的名称和后缀拼接,得到非默认分库的名称。
进一步,该装置还可以包括,第二判断模块,用于判断对象能否得到数据库的支持的操作;第一判断模块,用于在对象得到数据库的支持的情况下,执行根据分库名称判断分库是否存在的操作。
进一步,数据库可以为视图库,能够得到数据库支持的对象包括:人脸、车辆、物品、街道和/或图像中的至少一种。
进一步,对象持久化装置可以配置在Spring框架下。
本申请的第三方面提供了一种系统,包括:存储器,存储器中存储有指令,和处理器,用于读取所述存储器中的指令,以执行前述第一方面或第一方面的任一实现方式提供的方法。
本申请的第四方面提供了一种机器可读介质,该机器可读介质中存储有指令,指令被机器运行时,该机器执行前述第一方面或第一方面的任一实现方式提供的方法。
本申请通过动态分库技术可以大幅度地提高数据库查询数据的效率,满足用户根据需求动态地建立分库。另一方面,本申请可以支持多线程并发,避免了不同线程复用错误的分库名称。
附图说明
图1是根据本申请的实施例的对象持久化方法的示意图。
图2是根据本申请的实施例的分库名称的提取方法的示意图。
图3是根据本申请的实施例的对象持久化装置的结构示意图。
图4是根据本申请的实施例的数据库实例示意图。
具体实施方式
下面结合具体实施例和附图对本申请做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本申请,而非对本申请的限定。此外,为了便于描述,附图中仅示出了与本申请相关的部分而非全部的结构或过程。
本公开的说明性实施例包括但不限于对象持久化方法、装置以及相应的系统和介质。
将使用本领域技术人员通常采用的术语来描述说明性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说,使用部分所描述的特征来施行一些替代性实施例是显而易见的。出于解释的目的,阐述了具体的数字和配置,以便对说明性实施例进行更加透彻的理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实施替代实施例。在一些其他情况下,本文省略或简化了一些众所周知的特征,以避免使本申请的说明性实施例模糊不清。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。
如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括专用集成电路(ASIC)、电子电路、处理器(共享,专用或组)和/或存储器(共享,专用或组)。用于执行一个或多个软件或固件程序,组合逻辑电路和/或提供所述功能的其他合适组件。
在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征或者可以与将这些特征与其他特征进行组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
目前,数据库大多仅支持静态建立分库,在对象持久化时,需要事先手动创建分库,然后才能对新建的分库进行数据操作。而本申请则提供一种在对象持久化时动态创建分库的方案。图1示出了根据本申请的一些实施例的对象持久化方法的示意图。
根据本申请的一些实施例,提供一种对象持久化方法,持久化指的是将程序数据在持久状态和瞬时状态间转换的机制。即,将瞬时数据持久化为持久数据,对象持久化是指将内存中的对象保存到可永久保存的存储设备中。如图1所示,根据本申请的一些实施例,该方法可以包括如下操作。
首先,步骤S101,接收对象持久化请求,其中,对象持久化请求中可以包括对象要存储的数据库的分库名称。例如,可以在用户在访问的url后面拼接表征对象要存储的分库名称的参数。
例如,根据本申请的一些实施例,可以利用JAVA的Spring框架,通过Spring中的@Document注解来指定持久化到MongoDB中的域对象。图4示出了根据本申请的一些实施例的数据库viid的实例。根据本申请的一些实施例,数据库viid可以是视图库,用户可以将与视图相关的对象(例如,人脸、车辆、物品、街道和/或图像等)持久化到该viid库中,用户可以提交访问请求,来访问数据库VIID的各个分库(例如,Ape、analysisRule、caseInfo、face……)。例如,用户在对人脸这一对象进行持久化时,可以提交访问与人脸对应的face分库的请求,http://127.0.0.1:8082/VIID/Faces,该请求中包含对象要存储的数据库的分库名称face。
收到用户提交的请求后,步骤S102,从对象持久化请求中提取对象要存储的数据库的分库名称。例如,根据本申请的一个实施例,在上述示例中,用户提交的访问请求是:http://127.0.0.1:8082/VIID/Faces,没有拼接分库后缀参数,意味着对象持久化时访问默认分库中的face。
据本申请的一些实施例,数据库的分库可以包括默认分库和/或非默认分库,每种可以存储到该数据库的对象可以对应一个默认分库以及一个或多个非默认分库。
例如,在图4所示的数据库viid中,人脸这一对象可以对应多个分库,例如图4中所示的face、face_test、face_test0731、face_test0809、face_test0817……,其中,face可以作为人脸这一对象要被存储的默认分库,因此,如果在持久化时,用户提交的访问请求中没有后缀,例如:http://127.0.0.1:8082/VIID/Faces,那么,可以从中提取分库名称face,为默认分库face的分库名称,那么,可以得知用户要访问的是默认分库face。
而根据本申请的一些实施例,假设用户在持久化时提交的访问请求中有后缀,例如:http://127.0.0.1:8082/VIID/Faces?DataBaseName=test,那么,这意味着对象持久化时访问的并不是人脸对象对应的默认分库face,而是非默认分库face_test。
此时,根据本申请的一些实施例,如图3所示,从对象持久化请求中提取对象要存储的数据库的分库名称的操作S102可以进一步包括步骤S1021-S1023。
步骤S1021,在收到持久化请求后,可以用拦截器截获持久化请求中的DataBaseName的参数test,即,从对象持久化请求中提取后缀test,提取后,步骤S1021,将后缀test存储到一个ThreadLocal变量中。随后,步骤S1023,拼接默认分库名称和后缀,得到持久化对象要被存储的非默认分库的名称。例如,在Spring框架下,Document注解的collection属性可以根据ThreadLocal变量中存放的后缀test和默认分库的名称face拼接出face_test,得到新的集合名称face_test,即得到人脸对象要被存储的分库的名称为face_test。
步骤S104,得到分库名称后,可以根据分库名称判断分库是否存在;在分库存在的情况下(即步骤S104中判断为是),则继续到步骤S106,将对象存储到分库中,而在分库不存在的情况下(即步骤S104中判断为否),则先执行步骤S105,新建分库,随后执行步骤S106,将对象存储到新建的分库中。
例如,在上述示例中,在分库不存在的情况下,@Document注解将以该新的集合名称face_test作为域对象,从而可以对新的集合face_test进行数据操作,即,根据该分库名称face_test新建分库face_test,随后可以将持久化对象存储到新建的分库face_test中。而在face_test这一分库存在的情况下,例如图4中所示,则可以将人脸对象直接存储到该分库中。
对于默认分库的创建,根据本申请的一些实施例,其操作可以更为容易。例如,在图4所示的数据库viid示例中,假设没有默认分库aPE,那么,可以在aPE对应的对象入库时,直接在持久化请求中访问http://127.0.0.1:8082/VIID/aPEs,则可以直接创建默认分库aPE。
根据本申请的一些实施例,在对象持久化时,对象所要存储的非默认分库不存在的情况下,非默认分库的创建并不一定非要以该对象对应的默认分库的存在为前提,例如,在上述人脸对象要持久化到face_test的示例中,可以在没有默认分库face的情况下,直接创建非默认分库face_test。
通过在对象持久化请求中直接拼接分库名称这种方式,根据分库名称动态创建分库,省去了手动创建分库的操作,只需要用户在访问的url后面拼接表征分库名称的参数,就会根据该参数动态的创建新的分库并进行数据操作,提高了分库效率。另一方面,使用ThreadLocal存放分库名后缀,可以支持多线程并发,避免了不同线程复用错误的分库名称。
根据本申请的一些实施例,该对象持久化方法中还可以包括步骤S103,判断对象能否得到数据库的支持;并在对象能够得到数据库的支持的情况下(即步骤S103中判断为是),再执行根据分库名称判断分库是否存在的操作。可以根据用户需求来确定数据库所支持的持久化对象,例如,图4所示的数据库viid为视图库的情况下,那么,能够得到数据库支持的对象可以被定义为包括:人脸、车辆、物品、街道和/或图像等。此时,在视图库可支持范围之外的对象便不能持久化到该视图库viid中。在其他实施例中,可以根据不同的数据库类型或者不同的用户需求,确定不同的可支持对象。该步骤S103可以在步骤S102之前或者之后进行。
图3示出了根据本申请的实施例的对象持久化装置的结构示意图。
如图3所示,持久化装置30可以包括:请求接收模块301、分库名称提取模块302、第一判断模块303、第二判断模块304和持久化模块305。
其中,请求接收模块301可以用于接收对象持久化请求,其中,对象持久化请求中包括对象要存储的数据库的分库名称。其中,对象持久化请求中可以包括对象要存储的数据库的分库名称。例如,可以在用户在访问的url后面拼接表征对象要存储的分库名称的参数。例如,根据本申请的一些实施例,如图4示出的根据本申请的一些实施例的数据库viid的实例中,用户可以将相关对象持久化到该viid库中,用户可以提交访问请求,来访问数据库VIID的各个分库(例如,Ape、analysisRule、caseInfo、face……)。例如,用户在对人脸这一对象进行持久化时,可以提交访问与人脸对应的face分库的请求,http://127.0.0.1:8082/VIID/Faces,该请求中包含对象要存储的数据库的分库名称face。
分库名称提取模块302可以用于从对象持久化请求中提取对象要存储的数据库的分库名称。例如,在上述示例中,根据用户提交的访问请求,可以从中提取分库名称face。
据本申请的一些实施例,数据库的分库可以包括默认分库和/或非默认分库,每种可以存储到该数据库的对象可以对应一个默认分库以及一个或多个非默认分库。
例如,在图4所示的数据库viid中,人脸这一对象可以对应多个分库,例如图4中所示的face、face_test、face_test0731、face_test0809、face_test0817……,其中,face可以作为人脸这一对象要被存储的默认分库,因此,如果在持久化时,用户提交的访问请求中没有后缀,例如:http://127.0.0.1:8082/VIID/faces,那么,可以从中提取分库名称face,为默认分库face的分库名称,那么,可以得知用户要访问的是默认分库face。
而根据本申请的一些实施例,假设用户在持久化时提交的访问请求中有后缀,例如:http://127.0.0.1:8082/VIID/Faces?DataBaseName=test,那么,这意味着对象持久化时访问的并不是人脸对象对应的默认分库face,而是非默认分库face_test。
此时,根据本申请的一些实施例,分库名称提取模块302可以进一步被配置为,在收到持久化请求后,用拦截器截获持久化请求中的DataBaseName的参数test,即,从对象持久化请求中提取后缀test,并将提取的后缀存储到ThreadLocal变量中。在Spring框架下,Document注解的collection属性可以根据ThreadLocal变量中存放的后缀test和默认分库的名称face拼接出face_test,得到新的集合名称face_test,即得到人脸对象要被存储的分库的名称为face_test。
第一判断模块303可以用于根据分库名称判断分库是否存在。
持久化模块305可以用于在分库存在的情况下,将对象存储到分库中,以及在分库不存在的情况下,新建分库,并将对象存储到新建的分库中。
例如,在上述示例中,在分库不存在的情况下,@Document注解将以该新的集合名称face_test作为域对象,从而可以对新的集合face_test进行数据操作,即,根据该分库名称face_test新建分库face_test,随后可以将持久化对象存储到新建的分库face_test中。而在face_test这一分库存在的情况下,例如图4中所示,则可以将人脸对象直接存储到该分库中。
根据本申请的一些实施例,在对象持久化时,对象所要存储的非默认分库不存在的情况下,非默认分库的创建并不一定非要以该对象对应的默认分库的存在为前提,例如,在上述人脸对象要持久化到face_test的示例中,可以在没有默认分库face的情况下,直接创建非默认分库face_test。
对于默认分库的创建,根据本申请的一些实施例,其操作可以更为容易。例如,在图4所示的数据库viid示例中,假设没有默认分库aPE,那么,可以在aPE对应的对象入库时,直接在持久化请求中访问http://127.0.0.1:8082/VIID/aPEs,则可以直接创建默认分库aPE。
第二判断模块304为可选模块,可以用于判断对象能否得到数据库的支持的操作。在第二判断模块304存在的情况下,第一判断模块303可以只在对象得到数据库的支持的情况下执行根据分库名称判断分库是否存在的操作。可以根据用户需求来确定数据库所支持的持久化对象,例如,图4所示的数据库viid为视图库的情况下,那么,能够得到数据库支持的对象可以被确定为包括:人脸、车辆、物品、街道和/或图像等。此时,在视图库可支持范围之外的对象便不能持久化到该视图库viid中。在其他实施例中,可以根据不同的数据库类型或者不同的用户需求,确定不同的可支持对象。
本申请通过动态分库技术可以大幅度地提高数据库查询数据的效率,满足用户根据需求动态地建立分库。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合形式来实现。所公开的实施例还可以以承载或储存在一个或多个瞬态或非瞬态的机器可读(例如,计算机可读)存储介质上的指令或程序形式实现,其可以由一个或多个处理器等读取和执行。当指令或程序被机器运行时,机器可以执行前述的对象持久化方法。例如,指令可以通过网络或其他计算机可读介质分发。因此,机器可读介质可以包括但不限于,用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,例如,软盘,光盘,光盘只读存储器(CD-ROMs),磁光盘,只读存储器(ROM),随机存取存储器(RAM),可擦除可编程只读存储器(EPROM),电子式可清除程序化只读存储器(EEPROM),磁卡或光卡,或者用于通过电、光、声或其他形式信号(例如,载波、红外信号、数字信号等)传输网络信息的闪存或有形的机器可读存储器。因此,机器可读介质包括任何形式的适合于存储或传输电子指令或机器(例如,计算机)可读信息的机器可读介质。
根据本申请的另一个实施例,还提供了一种系统,包括:存储器和处理器,存储器中存储有指令,处理器用于读取所述存储器中的指令,以执行前述对象持久化方法。
上面结合附图对本申请的实施例做了详细说明,但本申请技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本申请技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本申请宗旨的前提下做出的各种变化,均应归属于本申请专利涵盖范围。
Claims (16)
1.一种对象持久化方法,其特征在于,包括:
接收对象持久化请求,其中,所述对象持久化请求中包括对象要存储的数据库的分库名称;
从所述对象持久化请求中提取所述对象要存储的数据库的分库名称;
根据所述分库名称判断分库是否存在;
在所述分库存在的情况下,将所述对象存储到所述分库中,以及
在所述分库不存在的情况下,新建所述分库,并将所述对象存储到新建的分库中。
2.根据权利要求1所述的对象持久化方法,其特征在于,所述分库为所述对象所对应的默认分库,所述分库名称为所述对象所对应的默认分库的名称。
3.根据权利要求1所述的对象持久化方法,其特征在于,
所述分库为所述对象所对应的非默认分库,所述分库名称为所述对象所对应的非默认分库的名称;
所述非默认分库的名称包括所述对象所对应的默认分库的名称和后缀。
4.根据权利要求3所述的对象持久化方法,其特征在于,从所述对象持久化请求中提取所述对象要存储的数据库的分库名称包括:
从所述对象持久化请求中提取所述后缀,并将所述后缀存储到线程局部变量中;和
将所述默认分库的名称和所述后缀拼接,得到所述非默认分库的名称。
5.根据权利要求1所述的对象持久化方法,其特征在于,还包括判断所述对象能否得到所述数据库的支持的操作;并在所述对象能够得到所述数据库的支持的情况下,执行根据所述分库名称判断分库是否存在的操作。
6.根据权利要求5所述的对象持久化方法,其特征在于,所述数据库为视图库,所述能够得到所述数据库支持的对象包括:人脸、车辆、物品、街道和/或图像中的至少一种。
7.根据权利要求1所述的对象持久化方法,其特征在于,所述对象持久化方法在Spring框架下执行。
8.一种对象持久化装置,其特征在于,包括:
请求接收模块,用于接收对象持久化请求,其中,所述对象持久化请求中包括对象要存储的数据库的分库名称;
分库名称提取模块,用于从所述对象持久化请求中提取所述对象要存储的数据库的分库名称;
第一判断模块,用于根据所述分库名称判断分库是否存在;
持久化模块,用于在所述分库存在的情况下,将所述对象存储到所述分库中,以及在所述分库不存在的情况下,新建所述分库,并将所述对象存储到新建的分库中。
9.根据权利要求8所述的对象持久化装置,其特征在于,所述分库为所述对象所对应的默认分库,所述分库名称为所述对象所对应的默认分库的名称。
10.根据权利要求8所述的对象持久化装置,其特征在于,
所述分库为所述对象所对应的非默认分库,所述分库名称为所述对象所对应的非默认分库的名称;
所述非默认分库的名称包括所述对象所对应的默认分库的名称和后缀。
11.根据权利要求10所述的对象持久化装置,其特征在于,所述分库名称提取模块用于:
从所述对象持久化请求中提取所述后缀,并将所述后缀存储到线程局部变量中;和
将所述默认分库的名称和所述后缀拼接,得到所述非默认分库的名称。
12.根据权利要求8所述的对象持久化装置,其特征在于,还包括:
第二判断模块,用于判断所述对象能否得到所述数据库的支持的操作;
所述第一判断模块,用于在所述对象得到所述数据库的支持的情况下,执行根据所述分库名称判断分库是否存在的操作。
13.根据权利要求12所述的对象持久化装置,其特征在于,所述数据库为视图库,所述能够得到所述数据库支持的对象包括:人脸、车辆、物品、街道和/或图像中的至少一种。
14.根据权利要求8所述的对象持久化装置,其特征在于,所述对象持久化装置配置在Spring框架下。
15.一种机器可读介质,其特征在于,所述机器可读介质中存储有指令,该指令被机器运行时,所述机器执行:
接收对象持久化请求,其中,所述对象持久化请求中包括对象要存储的数据库的分库名称;
从所述对象持久化请求中提取所述对象要存储的数据库的分库名称;
根据所述分库名称判断分库是否存在;
在所述分库存在的情况下,将所述对象存储到所述分库中,以及
在所述分库不存在的情况下,新建所述分库,并将所述对象存储到新建的分库中。
16.一种系统,其特征在于,包括:
存储器,所述存储器中存储有指令,和
处理器,用于读取所述存储器中的指令,以执行:
接收对象持久化请求,其中,所述对象持久化请求中包括对象要存储的数据库的分库名称;
从所述对象持久化请求中提取所述对象要存储的数据库的分库名称;
根据所述分库名称判断分库是否存在;
在所述分库存在的情况下,将所述对象存储到所述分库中,以及
在所述分库不存在的情况下,新建所述分库,并将所述对象存储到新建的分库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915297.7A CN110717074B (zh) | 2019-09-26 | 2019-09-26 | 对象持久化方法、装置、介质和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915297.7A CN110717074B (zh) | 2019-09-26 | 2019-09-26 | 对象持久化方法、装置、介质和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717074A true CN110717074A (zh) | 2020-01-21 |
CN110717074B CN110717074B (zh) | 2023-04-07 |
Family
ID=69210952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910915297.7A Active CN110717074B (zh) | 2019-09-26 | 2019-09-26 | 对象持久化方法、装置、介质和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717074B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641670A (zh) * | 2021-07-09 | 2021-11-12 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010018689A1 (en) * | 1999-12-27 | 2001-08-30 | Spence John Stanley | Dynamic object persistence |
CN103810224A (zh) * | 2012-11-15 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 信息持久化和查询方法及装置 |
CN103942281A (zh) * | 2014-04-02 | 2014-07-23 | 北京中交兴路车联网科技有限公司 | 一种对持久化存储的对象进行操作的方法及装置 |
CN104376054A (zh) * | 2014-11-04 | 2015-02-25 | 东软集团股份有限公司 | 一种持久化实例对象的处理方法及装置 |
CN108595490A (zh) * | 2018-03-15 | 2018-09-28 | 北京雷石天地电子技术有限公司 | 一种数据库检索机制的构建方法及系统 |
CN108874837A (zh) * | 2017-05-16 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 数据库分库方法、装置、中间件及存储介质和电子设备 |
CN110069473A (zh) * | 2019-03-27 | 2019-07-30 | 北京中科朗思信息技术有限公司 | 在国产自主安全可靠平台上实现数据库对象持久化的方法 |
-
2019
- 2019-09-26 CN CN201910915297.7A patent/CN110717074B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010018689A1 (en) * | 1999-12-27 | 2001-08-30 | Spence John Stanley | Dynamic object persistence |
CN103810224A (zh) * | 2012-11-15 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 信息持久化和查询方法及装置 |
CN103942281A (zh) * | 2014-04-02 | 2014-07-23 | 北京中交兴路车联网科技有限公司 | 一种对持久化存储的对象进行操作的方法及装置 |
CN104376054A (zh) * | 2014-11-04 | 2015-02-25 | 东软集团股份有限公司 | 一种持久化实例对象的处理方法及装置 |
CN108874837A (zh) * | 2017-05-16 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 数据库分库方法、装置、中间件及存储介质和电子设备 |
CN108595490A (zh) * | 2018-03-15 | 2018-09-28 | 北京雷石天地电子技术有限公司 | 一种数据库检索机制的构建方法及系统 |
CN110069473A (zh) * | 2019-03-27 | 2019-07-30 | 北京中科朗思信息技术有限公司 | 在国产自主安全可靠平台上实现数据库对象持久化的方法 |
Non-Patent Citations (1)
Title |
---|
PYTHON大视觉: "Java 判断数据库和表是否存在,若不存在,则创建", <CSDN,HTTPS://BLOG.CSDN.NET/WEIXIN_41792162/ARTICLE/DETAILS/88527896> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641670A (zh) * | 2021-07-09 | 2021-11-12 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
CN113641670B (zh) * | 2021-07-09 | 2023-08-11 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110717074B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491928B (zh) | 缓存控制方法、装置、终端及存储介质 | |
CN110597739A (zh) | 一种配置的管理方法、系统及设备 | |
CN106302595B (zh) | 一种对服务器进行健康检查的方法及设备 | |
CN112148678B (zh) | 一种文件访问方法、系统、设备以及介质 | |
CN102456028A (zh) | 一种面向多租户的数据获取方法、装置及系统 | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
CN107566518B (zh) | 在安装文件过程中管理设备信息的方法和装置 | |
CN110941393A (zh) | 一种基于逻辑卷管理的lv供应方法、装置、设备及介质 | |
CN109783462B (zh) | 一种基于分布式文件系统的数据访问方法和装置 | |
CN111324665A (zh) | 一种日志回放方法及装置 | |
CN108256014A (zh) | 页面展示方法及装置 | |
CN110717074B (zh) | 对象持久化方法、装置、介质和系统 | |
CN112187934A (zh) | 一种微服务搭建方法 | |
CN105847320A (zh) | 一种资源获取方法和装置 | |
CN112256351B (zh) | Feign组件的实现方法、微服务调用方法及装置 | |
CN107451252A (zh) | 基于api的快速查询方法及其系统 | |
CN116628027A (zh) | 跨数据库查询方法、装置、设备、介质和计算机程序产品 | |
CN110955449A (zh) | 客户端的灰度发布方法及装置 | |
CN111124545A (zh) | 应用程序启动方法、装置、电子设备及存储介质 | |
CN106649528A (zh) | 图片写入和读取方法、装置 | |
CN115905314A (zh) | 配置数据处理方法、系统、设备及计算机可读存储介质 | |
CN114090127A (zh) | 电子设备及其配置文件的加载方法和介质 | |
CN111736869A (zh) | 服务端接口的版本更新方法和服务端接口的调用方法 | |
CN111491033A (zh) | 一种连接建立方法及装置 | |
CN112541182B (zh) | 内核vfs层系统修复方法、装置、设备及存储介质 |
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 |