CN113254522A - 一种数据库访问方法、装置、设备及可读存储介质 - Google Patents
一种数据库访问方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113254522A CN113254522A CN202110677489.6A CN202110677489A CN113254522A CN 113254522 A CN113254522 A CN 113254522A CN 202110677489 A CN202110677489 A CN 202110677489A CN 113254522 A CN113254522 A CN 113254522A
- Authority
- CN
- China
- Prior art keywords
- target
- database
- name
- request
- access
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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
技术领域
本申请涉及计算机技术领域,特别涉及一种数据库访问方法、装置、设备及可读存储介质。
背景技术
目前,在对数据库进行分库分表时,相应配置文件中都指定了库名和/或表名,因此在访问逻辑中需要指定具体的库名和/或表名进行操作。而当库名和/或表名被修改,还需要相应修改配置文件。如:需要增加表字段,就需要在配置文件中进行相应增加,访问逻辑也需要相应修改,如此存在大量重复操作且较容易出错,访问效率也较低。
因此,如何提高数据库访问效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据库访问方法、装置、设备及可读存储介质,以提高数据库访问效率。其具体方案如下:
第一方面,本申请提供了一种数据库访问方法,包括:
接收目标对象的访问请求;
根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名;
根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;
若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库;
其中,所述主数据库和所述从数据库对应的配置文件均未指定库名和/或表名。
优选地,所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名之前,还包括:
若利用所述目标组件的库表配置接口获取到所述目标对象对应的对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
优选地,还包括:
若利用所述库表配置接口未获取到所述对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤;或执行若所述访问请求的操作类型为写操作,则按照所述访问请求访问所述主数据库;若所述访问请求的操作类型为读操作,则按照所述访问请求访问所述从数据库。
优选地,还包括:
若利用所述库表配置接口未获取到所述对象文件,则配置所述对象文件至所述库表配置接口,基于所述对象文件进行分库操作和/或分表操作后,执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
优选地,所述根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求,包括:
若所述属性配置接口为前缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的前缀进行添加,以得到所述待处理请求;
若所述属性配置接口为后缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的后缀进行添加,以得到所述待处理请求。
优选地,所述按照所述待处理请求访问主数据库之后,还包括:
将所述待处理请求写入的数据同步至所述从数据库。
优选地,所述接收目标对象的访问请求之前,还包括:
在所述目标组件中确定与所述主数据库或所述从数据库的数据库类型对应的连接配置和通用操作方法;所述主数据库和所述从数据库的数据库类型相同。
第二方面,本申请提供了一种数据库访问装置,包括:
接收模块,用于接收目标对象的访问请求;
获取模块,用于根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名;
补全模块,用于根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;
访问模块,用于若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库;其中,所述主数据库和所述从数据库对应的配置文件均未指定库名和/或表名。
优选地,还包括:
对象文件获取模块,用于若利用所述目标组件的库表配置接口获取到所述目标对象对应的对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
优选地,还包括:
执行模块,用于若利用所述库表配置接口未获取到所述对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤;或执行若所述访问请求的操作类型为写操作,则按照所述访问请求访问所述主数据库;若所述访问请求的操作类型为读操作,则按照所述访问请求访问所述从数据库。
优选地,还包括:
另一执行模块,用于若利用所述库表配置接口未获取到所述对象文件,则配置所述对象文件至所述库表配置接口,基于所述对象文件进行分库操作和/或分表操作后,执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
优选地,补全模块包括:
前缀补全单元,用于若所述属性配置接口为前缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的前缀进行添加,以得到所述待处理请求;
后缀补全单元,用于若所述属性配置接口为后缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的后缀进行添加,以得到所述待处理请求。
优选地,还包括:
同步模块,用于将所述待处理请求写入的数据同步至所述从数据库。
优选地,还包括:
配置模块,用于在所述目标组件中确定与所述主数据库或所述从数据库的数据库类型对应的连接配置和通用操作方法;所述主数据库和所述从数据库的数据库类型相同。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的数据库访问方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据库访问方法。
通过以上方案可知,本申请提供了一种数据库访问方法,包括:接收目标对象的访问请求;根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名;根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库;其中,所述主数据库和所述从数据库对应的配置文件均未指定库名和/或表名。
可见,本申请中的目标组件能够自动为访问请求补全库名和/或表名,使得各种类型的访问逻辑(如增删改查)都不用再指定具体的库名和/或表名,使用通用的逻辑即可完成,具有通用性。也就是:不用再针对增删改查分别实现访问逻辑,增删改查使用同一套访问逻辑即可,从而降低了开发工作量。同时,配置文件中不指定库名和/或表名,当数据库中的库名和/或表名被修改,无需修改配置文件,避免了配置文件的重复修改。本申请还设置了主从数据库,使写操作访问主数据库,读操作访问从数据库,能够避免写操作和读操作争抢计算机资源,提高数据库访问效率。
相应地,本申请提供的一种数据库访问装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据库访问方法流程图;
图2为本申请公开的一种公共组件功能示意图;
图3为本申请公开的一种数据库访问装置示意图;
图4为本申请公开的一种电子设备示意图;
图5为本申请公开的一种交互***示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。利用本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在对数据库进行分库分表时,相应配置文件中都指定了库名和/或表名,故对数据库进行增删改查等访问时,就需要指定具体的库名和/或表名进行操作。而当库名和/或表名被修改,还需要相应修改配置文件。如:需要增加表字段,就需要在配置文件中进行相应增加。如此存在大量重复操作且较容易出错,访问效率也较低。为此,本申请提供了一种数据库访问方案,能够提高数据库访问效率。
参见图1所示,本申请实施例公开了一种数据库访问方法,包括:
S101、接收目标对象的访问请求。
在本实施例中,访问请求可以是增、删、改、查请求。目标对象即当前要访问的对象。
S102、根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名。
其中,目标组件为本实施例提供的通用组件,该组件中实现有本实施例提供的方法,能够处理多种类型的访问请求,并且设计了多种类型数据库的访问逻辑和语法,因此可以兼容连接不同类型的数据库,具有通用性。属性配置接口是提供给数据库方的接入接口,数据库方可以为该接口提供库名和/或表名。具体地,若对数据库进行分库分表,库或表对应的对象文件的存储路径可以提供给该接口。当然,还可以对接其他***的URL(统一资源定位符,Uniform Resource Locator)给该接口,以便从该接口获取URL后,从URL中获取库名和/或表名。
在一种具体实施方式中,由于目标组件中设计了多种类型数据库的访问逻辑和语法,因此在接入目标组件至数据库时,可以在目标组件中确定与主数据库或从数据库的数据库类型对应的连接配置和通用操作方法;主数据库和从数据库的数据库类型相同。
S103、根据目标库名和/或目标表名调整访问请求,以得到待处理请求。
在一种具体实施方式中,根据目标库名和/或目标表名调整访问请求,以得到待处理请求,包括:若属性配置接口为前缀属性接口,则将目标库名和/或目标表名作为访问请求的前缀进行添加,以得到待处理请求;若属性配置接口为后缀属性接口,则将目标库名和/或目标表名作为访问请求的后缀进行添加,以得到待处理请求。例如:访问请求为aaa,获取到的目标库名+目标表名为AB,且属性配置接口为前缀属性接口,那么补全访问请求得到的待处理请求为ABaaa。此仅为示意性举例,具体实现还需参考当前所访问数据库使用的通信协议和配置。
S104、判断访问请求的操作类型;若操作类型为写操作,则执行S105;否则,执行S106。
S105、按照待处理请求访问主数据库。
S106、按照待处理请求访问从数据库。
其中,主数据库和从数据库对应的配置文件均未指定库名和/或表名,且二者的数据库类型相同。数据库类型可以为:oracle、mysql、sqlserver等。主数据库和从数据库互为备份。
可见,本实施例中的目标组件能够自动为访问请求补全库名和/或表名,使得各种类型的访问逻辑(如增删改查)都不用再指定具体的库名和/或表名,使用通用的逻辑即可完成,具有通用性。也就是:不用再针对增删改查分别实现访问逻辑,增删改查使用同一套访问逻辑即可,从而降低了开发工作量。同时,配置文件中不指定库名和/或表名,当数据库中的库名和/或表名被修改,无需修改配置文件,避免了配置文件的重复修改。本实施例还设置了主从数据库,使写操作访问主数据库,读操作访问从数据库,能够避免写操作和读操作争抢计算机资源,提高数据库访问效率。
基于上述实施例,需要说明的是,根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名之前,还包括:若利用目标组件的库表配置接口获取到目标对象对应的对象文件,则执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名的步骤。
一般地,若所访问的目标对象属于某一分库和/或某一数据表,那么利用属性配置接口就可以获取到相应库名和/或表名(对象文件中记录有库名和/或表名)。可见,若利用属性配置接口能够获取到对象文件,也就说明当前所访问的目标对象属于某一分库和/或某一数据表,故而需要补全访问请求。因此在获取库名和/或表名之前,可以先获取对象文件,获取到对象文件,就可以进行请求补全。当然,没有获取到对象文件,也可以利用属性配置接口获取库名和/或表名,因为可能从URL中获取到库名和/或表名。若从URL也没有获取到库名和/或表名,此时可以跳过请求补全步骤(如S103),直接基于访问请求进行访问;当然,也可以执行请求补全步骤,只是此时补全步骤所补内容为空,补全后得到的请求与补全之前的访问请求完全相同。
基于上述实施例,需要说明的是,若利用库表配置接口未获取到对象文件,则执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名;根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库的步骤。
或
若利用库表配置接口未获取到对象文件,执行若访问请求的操作类型为写操作,则按照访问请求访问主数据库;若访问请求的操作类型为读操作,则按照访问请求访问从数据库。
可见,对数据库进行分库分表或不进行分库分表,访问时可以执行同一逻辑,也可以执行不同逻辑,具体可以根据实际情况灵活设定。一个数据库可以包括多个分库,一个分库可以包括多个数据表,一个数据表可以包括多个子表。当数据库中的数据量较大时,对数据库进行分库分表可以有效提高数据库效率。
基于上述实施例,需要说明的是,若利用库表配置接口未获取到对象文件,则配置对象文件至库表配置接口,基于对象文件进行分库操作和/或分表操作后,执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名;根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库的步骤。
可见,在访问过程中,可以即时根据需要进行分库操作和/或分表操作。当然,也可以提前进行分库操作和/或分表操作,从而避免分库操作和/或分表操作影响访问效率。
其中,本实施例不限定分库操作和/或分表操作所依据的划分策略,也就是适用于各种划分策略。如:按照年、月、日、字段名称(如工资、学生等)划分等。
基于上述实施例,需要说明的是,主数据库和从数据库互为备份。因此在按照待处理请求访问主数据库之后,可以将待处理请求写入的数据同步至从数据库。
其中,数据可以实时同步,也可以定时同步。当主数据库故障时,可以使从数据库负责写操作的处理。同理,当从数据库故障时,可以使主数据库负责读操作的处理。二者故障期间所产生的新数据,可以在其恢复后及时进行同步。
本申请实施例公开了一种公共组件(即目标组件),该公共组件可以应对不分库分表的各种类型的数据库访问场景,还可以应对分库分表后的各种类型的数据库访问场景。
针对上述任意场景,本实施例提供的公共组件不再针对增删改查分别实现访问逻辑,而是使增删改查使用同一套访问逻辑,从而降低了开发工作量。即:该组件封装了增删改查等通用的基类方法,数据库方使用该组件时直接选择与数据库对应的方法类即可,基本无需编码。将该组件接入任意类型的数据库,并完成相应配置,即可实现数据库访问。
参见图2所示,该公共组件可以接入任意类型的数据库,且相应数据库对应的配置文件中无需指定库名和/或表名。必要时,数据库可以配置主从。
具体的,若数据库不涉及分库分表,则直接引入该公共组件的jar包即可。若数据库涉及分库分表,则基于该组件的库表配置接口进行分库分表操作,基于该组件的属性配置接口实现请求补全逻辑。之后,便可进行数据库访问,以查询过程为例,查一个对象时,查是否存在相应的对象文件;若是,则表明有分库分表,需要补全前/后缀,则利用属性配置接口获取前/后缀自动补全后进行查询。若未查到相应的对象文件,则表明没有分库分表,无需补全前后缀,此时可以直接查数据库,也可以执行前/后缀补全操作后查询(此时获取不到前/后缀的赋值,即获取的前/后缀数据为空,故补全操作相当于没有)。
具体的,进行分库分表操作时,可以从数据库中选择一些需要进行分表的对象文件提供给属性配置接口和库表配置接口,不用分表的对象文件不提供给属性配置接口和库表配置接口,从而实现分表和不分表共存。例如:一个数据库下的订单表需要分表,但是***配置表可能就不需要分表。
可见,本实施例实现了对多类型数据库的支持和多库多表的访问操作,使用方就跟使用正常的库表操作一样,无需多写代码和底层的配置文件,避免了每个数据库在分库分表时都需要将库名+表名映射到配置文件的复杂配置工作。
下面对本申请实施例提供的一种数据库访问装置进行介绍,下文描述的一种数据库访问装置与上文描述的一种数据库访问方法可以相互参照。
参见图3所示,本申请实施例公开了一种数据库访问装置,包括:
接收模块301,用于接收目标对象的访问请求;
获取模块302,用于根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名;
补全模块303,用于根据目标库名和/或目标表名调整访问请求,以得到待处理请求;
访问模块304,用于若访问请求的操作类型为写操作,则按照待处理请求访问主数据库;若访问请求的操作类型为读操作,则按照待处理请求访问从数据库;其中,主数据库和从数据库对应的配置文件均未指定库名和/或表名。
在一种具体实施方式中,还包括:
对象文件获取模块,用于若利用目标组件的库表配置接口获取到目标对象对应的对象文件,则执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名的步骤。
在一种具体实施方式中,还包括:
执行模块,用于若利用库表配置接口未获取到对象文件,则执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名的步骤;或执行若访问请求的操作类型为写操作,则按照访问请求访问主数据库;若访问请求的操作类型为读操作,则按照访问请求访问从数据库。
在一种具体实施方式中,还包括:
另一执行模块,用于若利用库表配置接口未获取到对象文件,则配置对象文件至库表配置接口,基于对象文件进行分库操作和/或分表操作后,执行根据目标组件的属性配置接口获取目标对象所属的目标库名和/或目标表名的步骤。
在一种具体实施方式中,补全模块包括:
前缀补全单元,用于若属性配置接口为前缀属性接口,则将目标库名和/或目标表名作为访问请求的前缀进行添加,以得到待处理请求;
后缀补全单元,用于若属性配置接口为后缀属性接口,则将目标库名和/或目标表名作为访问请求的后缀进行添加,以得到待处理请求。
在一种具体实施方式中,还包括:
同步模块,用于将待处理请求写入的数据同步至从数据库。
在一种具体实施方式中,还包括:
配置模块,用于在目标组件中确定与主数据库或从数据库的数据库类型对应的连接配置和通用操作方法;主数据库和从数据库的数据库类型相同。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据库访问装置,能够降低开发工作量,避免配置文件的重复修改,提高数据库访问效率。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种数据库访问方法及装置可以相互参照。
参见图4所示,本申请实施例公开了一种电子设备,包括:
存储器401,用于保存计算机程序;
处理器402,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种数据库访问方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据库访问方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
下面结合具体应用场景详细介绍本申请提供的数据库访问方法,需要说明的是,该方法可以应用于任意场景的数据库,如:电商业务场景、大型存储类场景等。
请参阅图5,图5示出了一种适用于本申请实施例的应用环境示意图。本申请实施例提供的数据库访问方法可以应该用于如图5所示的交互***。交互***包括终端设备101以及服务器102,服务器102与终端设备101通信连接。其中,服务器102可以是传统服务器,也可以是云端服务器,在此不做具体限定。
其中,终端设备101可以是具有显示屏、具有匹配语音与图像数据的模块、具有拍摄相机、具有音频输入/输出等功能,且支持数据输入的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、自助服务终端和可穿戴式电子设备等。具体的,数据输入可以是基于电子设备上具有的语音模块输入语音、字符输入模块输入字符等。
其中,终端设备101上可以安装有客户端应用程序,用户可以基于客户端应用程序(例如APP,微信小程序等)触发数据库访问操作。用户可以基于客户端应用程序在服务器102注册一个用户账号,并基于该用户账号与服务器102进行通信,例如用户在客户端应用程序登录用户账号,并基于该用户账号通过客户端应用程序进行输入,可以输入文字信息或语音信息等,客户端应用程序接收到用户输入的信息后,可以将该信息发送至服务器102,使得服务器102可以接收该信息并进行处理及存储,服务器102还可以接收该信息并根据该信息返回一个对应的输出信息至终端设备101。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据库访问方法,其特征在于,包括:
接收目标对象的访问请求;
根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名;
根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;
若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库;
其中,所述主数据库和所述从数据库对应的配置文件均未指定库名和/或表名。
2.根据权利要求1所述的方法,其特征在于,所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名之前,还包括:
若利用所述目标组件的库表配置接口获取到所述目标对象对应的对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
3.根据权利要求2所述的方法,其特征在于,还包括:
若利用所述库表配置接口未获取到所述对象文件,则执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤;或执行若所述访问请求的操作类型为写操作,则按照所述访问请求访问所述主数据库;若所述访问请求的操作类型为读操作,则按照所述访问请求访问所述从数据库。
4.根据权利要求3所述的方法,其特征在于,还包括:
若利用所述库表配置接口未获取到所述对象文件,则配置所述对象文件至所述库表配置接口,基于所述对象文件进行分库操作和/或分表操作后,执行所述根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名的步骤。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求,包括:
若所述属性配置接口为前缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的前缀进行添加,以得到所述待处理请求;
若所述属性配置接口为后缀属性接口,则将所述目标库名和/或所述目标表名作为所述访问请求的后缀进行添加,以得到所述待处理请求。
6.根据权利要求1所述的方法,其特征在于,所述按照所述待处理请求访问主数据库之后,还包括:
将所述待处理请求写入的数据同步至所述从数据库。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述接收目标对象的访问请求之前,还包括:
在所述目标组件中确定与所述主数据库或所述从数据库的数据库类型对应的连接配置和通用操作方法;所述主数据库和所述从数据库的数据库类型相同。
8.一种数据库访问装置,其特征在于,包括:
接收模块,用于接收目标对象的访问请求;
获取模块,用于根据目标组件的属性配置接口获取所述目标对象所属的目标库名和/或目标表名;
补全模块,用于根据所述目标库名和/或所述目标表名调整所述访问请求,以得到待处理请求;
访问模块,用于若所述访问请求的操作类型为写操作,则按照所述待处理请求访问主数据库;若所述访问请求的操作类型为读操作,则按照所述待处理请求访问从数据库;其中,所述主数据库和所述从数据库对应的配置文件均未指定库名和/或表名。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110677489.6A CN113254522A (zh) | 2021-06-18 | 2021-06-18 | 一种数据库访问方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110677489.6A CN113254522A (zh) | 2021-06-18 | 2021-06-18 | 一种数据库访问方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113254522A true CN113254522A (zh) | 2021-08-13 |
Family
ID=77188807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110677489.6A Pending CN113254522A (zh) | 2021-06-18 | 2021-06-18 | 一种数据库访问方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254522A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移***和方法 |
CN105138326A (zh) * | 2015-08-11 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于ibatis实现sql动态配置的方法及*** |
CN107491700A (zh) * | 2017-07-06 | 2017-12-19 | 联动优势科技有限公司 | 一种数据访问方法及设备 |
US20180137184A1 (en) * | 2016-11-15 | 2018-05-17 | Spirent Communications, Inc. | Sql interceptor for use with third party data analytics packages |
CN112380276A (zh) * | 2021-01-15 | 2021-02-19 | 四川新网银行股份有限公司 | 一种分布式***分库分表后非分片键字段查询数据的方法 |
CN112905601A (zh) * | 2021-03-24 | 2021-06-04 | 深圳前海微众银行股份有限公司 | 一种数据库分表的路由方法及装置 |
-
2021
- 2021-06-18 CN CN202110677489.6A patent/CN113254522A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移***和方法 |
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN105138326A (zh) * | 2015-08-11 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于ibatis实现sql动态配置的方法及*** |
US20180137184A1 (en) * | 2016-11-15 | 2018-05-17 | Spirent Communications, Inc. | Sql interceptor for use with third party data analytics packages |
CN107491700A (zh) * | 2017-07-06 | 2017-12-19 | 联动优势科技有限公司 | 一种数据访问方法及设备 |
CN112380276A (zh) * | 2021-01-15 | 2021-02-19 | 四川新网银行股份有限公司 | 一种分布式***分库分表后非分片键字段查询数据的方法 |
CN112905601A (zh) * | 2021-03-24 | 2021-06-04 | 深圳前海微众银行股份有限公司 | 一种数据库分表的路由方法及装置 |
Non-Patent Citations (1)
Title |
---|
向怀坤等: "《大数据分布式并行处理技术 基于天云星数据库的交通管理大数据处理》", 31 July 2018 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162512B (zh) | 一种日志检索方法、装置及存储介质 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN107153644B (zh) | 一种数据同步方法及装置 | |
CN107193827B (zh) | 分库分表的幂等控制方法和装置 | |
CN109379398B (zh) | 一种数据同步方法及装置 | |
CN111324606B (zh) | 数据分片的方法及装置 | |
CN110175157B (zh) | 一种列存储文件的查询方法及查询装置 | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN105677904A (zh) | 基于分布式文件***的小文件存储方法及装置 | |
CN111324665A (zh) | 一种日志回放方法及装置 | |
CN112363994A (zh) | 数据库的处理方法、装置、电子装置和存储介质 | |
JP2015528957A (ja) | 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス | |
CN106990974B (zh) | 一种app应用更新方法、装置及电子设备 | |
CN111680030A (zh) | 数据融合方法及装置,基于元信息的数据处理方法和装置 | |
CN107704464B (zh) | 解析静态资源的路径的方法及装置 | |
CN111639087A (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN113254522A (zh) | 一种数据库访问方法、装置、设备及可读存储介质 | |
CN113111138A (zh) | 数据处理方法、装置、计算设备以及介质 | |
CN114237989A (zh) | 数据库服务部署、容灾方法及装置 | |
CN112699129A (zh) | 一种数据处理***、方法及装置 | |
CN115114258A (zh) | 数据复制方法、装置、电子设备及计算机存储介质 | |
CN112650713A (zh) | 文件***的运行方法、装置、设备和存储介质 | |
CN111694611B (zh) | 一种数据处理方法、装置、电子设备 | |
CN116578247B (zh) | 一种基于元数据的数据存取方法及*** | |
CN116701545A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210813 |