CN110389977B - 一种数据库连接创建方法、装置及终端设备 - Google Patents
一种数据库连接创建方法、装置及终端设备 Download PDFInfo
- Publication number
- CN110389977B CN110389977B CN201910515116.1A CN201910515116A CN110389977B CN 110389977 B CN110389977 B CN 110389977B CN 201910515116 A CN201910515116 A CN 201910515116A CN 110389977 B CN110389977 B CN 110389977B
- Authority
- CN
- China
- Prior art keywords
- data source
- database connection
- bean
- database
- data sources
- 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.)
- Active
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
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库连接创建方法、装置及终端设备,适用于数据处理技术领域,该方法包括:获取预设的数据源组,其中,数据源组内包含一个主数据源和n个附属数据源,n为自然数;分别读取n个附属数据源的bean名称,并将得到的n个bean名称均设置为主数据源bean的别名;基于附属数据源的bean名称和主数据源的bean别名,对数据源组中的所有数据源进行初始化,得到主数据源对应的包含预设数量数据库连接的数据库连接池。实现了将需要合并的数据源初始化成内存中的同一对象,最终仅会得到主数据源预设数量的数据库连接,极大地减少了数据库连接数。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及数据库连接创建方法及终端设备。
背景技术
现有技术中,Spring平台项目共用一份配置文件,配置文件中配置了多个数据源,一个数据源配置对应一个数据库连接池,每个数据库连接池有一定的初始化数据库连接数量,在创建数据库连接池的时候,会与数据库建立对应个数的数据库连接。
对于有些项目采用单数据库的时候,所有数据源配置都指向同一个数据库,从而造成数据库初始化连接数过多,例如假设同时有3个数据源配置都指向同一数据库,且每个数据源配置对应数据库连接池的数据库连接数量均为10,此时对于同一数据库初始化会创建共30条数据库连接,进而容易导致程序运行过程中获取数据库连接失败。
发明内容
有鉴于此,本发明实施例提供了一种数据库连接创建方法、装置及终端设备,以解决现有技术中使用单数据库情况下,多数据源配置造成的数据库连接数过多的问题。
本发明实施例的第一方面提供了一种数据库连接创建方法,包括:
获取预设的数据源组,其中,所述数据源组内包含一个主数据源和n个附属数据源,n为自然数;
分别读取n个所述附属数据源的bean名称,并将得到的n个bean名称均设置为所述主数据源bean的别名;
基于所述附属数据源的bean名称和所述主数据源的bean别名,对所述数据源组中的所有数据源进行初始化,得到所述主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个所述附属数据源的数据库连接获取请求时,从所述主数据源对应的数据库连接池内获取对应的数据库连接。
本发明实施例的第二方面提供了一种数据库连接创建装置,包括:
数据源获取模块,用于获取预设的数据源组,其中,所述数据源组内包含一个主数据源和n个附属数据源,n为自然数;
别名设置模块,用于分别读取n个所述附属数据源的bean名称,并将得到的n个bean名称均设置为所述主数据源bean的别名;
初始化模块,用于基于所述附属数据源的bean名称和所述主数据源的bean别名,对所述数据源组中的所有数据源进行初始化,得到所述主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个所述附属数据源的数据库连接获取请求时,从所述主数据源对应的数据库连接池内获取对应的数据库连接。
本发明实施例的第三方面提供了一种终端设备,所述终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,包括:存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述创建方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:利用Spring的bean别名替换或者单例注册的方式,将单个数据库对应的多个数据源进行主数据源和附属数据源划分并进行bean别名设置,从而使得数据源初始化时,附属数据源不会创建对应的数据库连接池,而是仅对bean别名为附属数据源bean名称的主数据源进行初始化,并仅创建主数据源对应的数据库连接,因此实现了将需要合并的数据源初始化成内存中的同一对象,最终仅会得到主数据源预设数量的数据库连接,极大地减少了数据库连接数。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据库连接创建方法的实现流程示意图;
图2是本发明实施例二提供的数据库连接创建方法的实现流程示意图;
图3是本发明实施例三提供的数据库连接创建方法的实现流程示意图;
图4是本发明实施例四提供的数据库连接创建方法的实现流程示意图;
图5是本发明实施例五提供的数据库连接创建方法的实现流程示意图;
图6是本发明实施例六提供的数据库连接创建装置的结构示意图;
图7是本发明实施例七提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
为了便于理解本发明,此处先对本发明实施例进行简要说明:由于现有技术中单数据库情况下,都是预先对每个数据源设定好对应的数据库连接数,并在初始化时直接对每个数据源都进行数据库连接生成,因此在现有技术中,若对单个数据库配置的数据源数量较多,会导致数据库初始化时产生的数据库连接过多,容易导致程序运行过程中获取数据库连接失败。
为了减少数据库初始化时产生的数据库连接,在本发明实施例中,会预先将数据库对应的多个数据源划分为一个主数据源和不定个数的附属数据源(除主数据源以外的都是附属数据源),并利用Spring的bean别名替换或者单例注册的方式,将所有附属数据源的bean名称均设置为主数据源的bean别名,再对所有数据源进行初始化,从而使得数据源初始化时,附属数据源不会创建对应的数据库连接池,而是仅对bean别名为附属数据源bean名称的主数据源进行初始化,并仅创建主数据源对应的数据库连接,因此实现了将需要合并的数据源初始化成内存中的同一对象,最终仅会得到主数据源预设数量的数据库连接,极大地减少了数据库连接数,详述如下:
图1示出了本发明实施例一提供的数据库连接创建方法的实现流程图,详述如下:
S101,获取预设的数据源组,其中,数据源组内包含一个主数据源和n个附属数据源,n为自然数。
在本发明实施例中,包括两种配置文件:
应用启动配置文件:由技术人员预先将本发明实施例的方法写入应用启动配置文件,配置成Spring管理的bean,并将应用启动配置文件打包至应用包里面,使得应用在启动时可以读取解析,使应用具有多数据源合并能力。
外部配置文件:指储存在应用包外部的配置文件,外部配置文件可以放在任意位置可多个应用共用,应用在启动或者运行过程中会动态读取。外部配置文件中会将应用需要使用到的数据库对应的数据源进行配置,对于单数据库对应的多个数据源,会以1个主数据源+n个附属数据源的形式进行配置,配置规则包括但不限于如:
主数据源:附属数据源列表(英文逗号分隔);主数据源:附属数据源列表(英文逗号分隔);…
其中,对主数据源的选取由技术人员根据实际需求设定,n即为单个数据库对应的所有数据源数量-1,n的具体大小,由实际应用需求决定。
S102,分别读取n个附属数据源的bean名称,并将得到的n个bean名称均设置为主数据源bean的别名。
在确定出单个数据库对应的所有附属数据源之后,本发明实施例会读取每个附属数据源的bean名称,并将这些bean名称均设置为主数据源的bean别名。
S103,基于附属数据源的bean名称和主数据源的bean别名,对数据源组中的所有数据源进行初始化,得到主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个附属数据源的数据库连接获取请求时,从主数据源对应的数据库连接池内获取对应的数据库连接。
为了减少初始化生成的数据库连接数,本发明实施例中会基于各个数据源的bean名称和bean别名来进行数据源的初始化,并仅对主数据源进行初始化和预设数量的数据库连接创建,从而得到主数据源对应的数据库连接池。其中,预设数量的具体值由技术人员根据实际情况设置,只需不大于数据源支持的最大连接数量即可。
同时,为了保证对数据源的正常请求使用,本发明实施例中,若接收到对附属数据源的数据库连接获取请求时,会将该请求转移至对主数据源的数据库连接获取,并从主数据源的数据库连接池内获取对应的数据库连接。
作为本发明实施例一中对数据源组内每个待处理数据源进行初始化的一种具体实现方式,如图2所示,本发明实施例二,包括:
S201,获取数据源组中除待处理数据源以外所有数据源的bean别名。
S202,基于获取到的bean别名对待处理数据源的bean名称进行匹配。
S203,若bean名称匹配失败,对待处理数据源进行初始化,创建对应的数据库连接池。
S204,若bean名称匹配成功,终止对待处理数据源的初始化操作。
在本发明实施例中,为了减少数据库初始化时产生的数据库连接,会预先将数据库对应的多个数据源划分为一个主数据源和不定个数的附属数据源(除主数据源以外的都是附属数据源),并利用Spring的bean别名替换或者单例注册的方式,将所有附属数据源的bean名称均设置为主数据源的bean别名,再对所有数据源进行初始化,从而使得数据源初始化时,附属数据源不会创建对应的数据库连接池,而是仅对bean别名为附属数据源bean名称的主数据源进行初始化,并仅创建主数据源对应的数据库连接,因此实现了将需要合并的数据源初始化成内存中的同一对象,最终仅会得到主数据源预设数量的数据库连接,极大地减少了数据库连接数,同时将对附属数据源的数据库连接获取请求转移至主数据源进行响应和获取,使得即使较少的数据库连接数情况下,也可以保证对单数据库的正常访问使用。
作为本发明的一个实施例,为了本发明实施例一中可以正常识别数据源组内的主数据源和附属数据源,包括:
对数据源组对应预设的外部配置文件进行配置规则解析,筛选出数据源组中包含的n个附属数据源。
由于配置规则是技术人员预设设置的,因此通过对外部配置文件进行解析,即可获知数据源组内哪些是主数据源哪些是附属数据源,再进行筛选即可。
作为本发明实施例三,由于上述本发明实施例一和二中仅对一个数据源进行数据库连接创建,而实际使用过程中可能会出现数据库连接数量不够的情况,因此为了满足实际应用的需求,本发明实施例会在需求不满足时继续对主数据源进行数据库连接创建,如图3,包括:
S301,接收对主数据源的数据库连接获取请求,并解析数据库连接获取请求对应的第一数据库连接数。
S302,若第一数据库连接数大于预设数量,判断第一数据库连接数与主数据源对应的最大连接数量的大小关系。
在本发明实施例中,数据库连接池负责分配、管理和释放数据库连接,它允许应用重复使用一个现有的数据库连接而不是再重新建立一个,一方面,当数据库连接获取请求所需求的第一数据库连接数大于实际数据库连接池内所拥有的数据库连接数时,说明当前的数据库连接不够用需要增加数量,而另一方面,每个数据源支持的最大数据库连接数是有限的,因此创建的数量也必须进行限定。
S303,若第一数据库连接数小于或等于最大连接数量,在主数据源的数据库连接池内创建新的数据库连接,直至主数据源的数据库连接池内数据库连接的数量等于第一数据库连接数。
当所需的第一数据库连接数小于或等于主数据源的最大连接数量时,本发明实施例会在主数据源的数据库连接池内创建新的数据库连接,直至最终数据库连接池内的数据库连接数量达到所需的第一数据库连接数,以保证对数据库连接的正常使用。
作为本发明的另一个实施例,当第一数据库连接数大于主数据源的最大连接数量时,本发明实施例会直接在主数据源的数据库连接池内创建新的数据库连接,直至最终数据库连接池内的数据库连接数量达到主数据源的最大连接数量。
作为本发明实施例四,由于上述本发明实施例一和二中仅对一个数据源进行数据库连接创建,而实际使用过程中可能会出现数据库连接数量不够的情况,因此为了满足实际应用的需求,本发明实施例会在需求不满足时继续对主数据源进行数据库连接创建,同时为了防止对多个数据源创建数据库连接,使得后续数据库连接数量存在过多可能,如图4,在本发明实施例一之后,包括:
S401,若接收到的对附属数据源的数据库连接获取请求对应的第二数据库连接数大于预设数量,判断第二数据库连接数与主数据源对应的最大连接数量。
S402,若第二数据库连接数小于或等于最大连接数量,在主数据源的数据库连接池内创建新的数据库连接,直至主数据源的数据库连接池内数据库连接的数量等于第二数据库连接数。
本发明实施例四的原理与本发明实施例三基本相同,因此不予赘述,但与本发明实施例三不同之处在于,本发明实施例四中针对的是若用户有对附属数据源进行数据库连接请求时的处理,由于本发明实施例会将对附属数据源的请求转移至主数据源,因此本发明实施例会对主数据源的数据库连接池内的数据库连接数进行比对,以确定是否需要对主数据源进行数据库连接的创建。
应当说明地,本发明实施例四既可以单独与本发明实施例一或二进行结合应用,可以同时与本发明实施例三一起,与本发明实施例一或二进行结合应用,具体可由技术人员根据实际应用需求决定,此处不予限定。
作为本发明实施例五,为了保证在上述本发明实施例完成对所有数据源的初始化之后,用户能够正常获取数据库连接,正常使用数据库,如图5所示,包括:
S501,接收对待处理数据源的数据库连接获取请求,并获取数据源组中除待处理数据源以外所有数据源的bean别名。
S502,基于获取到的bean别名对待处理数据源的bean名称进行匹配。
S503,若bean名称匹配成功,从匹配成功的bean别名所属数据源对应的数据库连接池中,提取出数据库连接获取请求对应的数据库连接。
S504,若bean名称匹配失败,从待处理数据源对应的数据库连接池中,提取出数据库连接获取请求对应的数据库连接。
与本发明实施例二相同的,在本发明实施例中也是通过bean名称匹配的方式来确定待处理数据源是主数据源还是附属数据源,相关原理说明可以参考本发明实施例一和二,此处不予赘述。在本发明实施例中,若待处理数据源的bean名称是其他数据源的bean别名,本发明实施例会直接将数据库连接获取请求转移至该bean别名所属的数据源,并从bean别名所属数据源的数据库连接池中进行数据库连接提取,反之,若待处理数据源的bean名称不是其他数据源的bean别名,则直接对待处理数据源的数据库连接池进行数据库连接提取。
在本发明实施例中,通过对将附属数据源的数据库连接获取请求转移至主数据源,从而使得上述本发明实施例一至四中,即使只创建了主数据源的数据库连接池,用户也可以正常通过附属数据源获取对数据库的数据库连接,并进行正常的数据库访问等操作。
对应于上文实施例的方法,图6示出了本发明实施例提供的数据库连接创建装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。图6示例的数据库连接创建装置可以是前述实施例一提供的数据库连接创建方法的执行主体。
参照图6,该数据库连接创建装置包括:
数据源获取模块61,用于获取预设的数据源组,其中,所述数据源组内包含一个主数据源和n个附属数据源,n为自然数。
别名设置模块62,用于分别读取n个所述附属数据源的bean名称,并将得到的n个bean名称均设置为所述主数据源bean的别名。
初始化模块63,用于基于所述附属数据源的bean名称和所述主数据源的bean别名,对所述数据源组中的所有数据源进行初始化,得到所述主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个所述附属数据源的数据库连接获取请求时,从所述主数据源对应的数据库连接池内获取对应的数据库连接。
进一步地,初始化模块63,包括:
别名获取子模块,用于获取所述数据源组中除所述待处理数据源以外所有数据源的bean别名。
名称匹配子模块,用于基于获取到的bean别名对所述待处理数据源的bean名称进行匹配。
初始判断子模块,用于若bean名称匹配失败,对所述待处理数据源进行初始化,创建对应的数据库连接池。若bean名称匹配成功,终止对所述待处理数据源的初始化操作。
进一步地,该数据库连接创建装置,还包括:
配置解析模块,用于对所述数据源组对应预设的外部配置文件进行配置规则解析,筛选出所述数据源组中包含的n个所述附属数据源。
进一步地,该数据库连接创建装置,还包括:
请求解析模块,用于接收对所述主数据源的数据库连接获取请求,并解析所述数据库连接获取请求对应的第一数据库连接数。
第一连接数对比模块,用于若所述第一数据库连接数大于所述预设数量,判断所述第一数据库连接数与所述主数据源对应的最大连接数量的大小关系。
第一连接创建模块,用于若所述第一数据库连接数小于或等于所述最大连接数量,在所述主数据源的数据库连接池内创建新的数据库连接,直至所述主数据源的数据库连接池内数据库连接的数量等于所述第一数据库连接数。
进一步地,该数据库连接创建装置,还包括:
第二连接数对比模块,用于若接收到的对所述附属数据源的数据库连接获取请求对应的第二数据库连接数大于所述预设数量,判断所述第二数据库连接数与所述主数据源对应的所述最大连接数量。
第二连接创建模块,用于若所述第二数据库连接数小于或等于所述最大连接数量,在所述主数据源的数据库连接池内创建新的数据库连接,直至所述主数据源的数据库连接池内数据库连接的数量等于所述第二数据库连接数。
进一步地,该数据库连接创建装置,还包括:
请求接收模块,用于接收对待处理数据源的数据库连接获取请求,并获取所述数据源组中除所述待处理数据源以外所有数据源的bean别名。
名称匹配模块,用于基于获取到的bean别名对所述待处理数据源的bean名称进行匹配。
第一连接提取模块,用于若bean名称匹配成功,从匹配成功的bean别名所属数据源对应的数据库连接池中,提取出所述数据库连接获取请求对应的数据库连接。
第二连接提取模块,若bean名称匹配失败,从所述待处理数据源对应的数据库连接池中,提取出所述数据库连接获取请求对应的数据库连接。
本发明实施例提供的数据库连接创建装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例一的描述,此处不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本发明实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一表格可以被命名为第二表格,并且类似地,第二表格可以被命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但是它们不是同一表格。
图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71,所述存储器71中存储有可在所述处理器70上运行的计算机程序72。所述处理器70执行所述计算机程序72时实现上述各个数据库连接创建方法实施例中的步骤,例如图1所示的步骤101至106。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块61至64的功能。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入发送设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经发送或者将要发送的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据库连接创建方法,其特征在于,包括:
获取预设的数据源组,其中,所述数据源组内包含一个主数据源和n个附属数据源,n为自然数;
分别读取n个所述附属数据源的bean名称,并将得到的n个bean名称均设置为所述主数据源bean的别名;
基于所述附属数据源的bean名称和所述主数据源的bean别名,对所述数据源组中的所有数据源进行初始化,得到所述主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个所述附属数据源的数据库连接获取请求时,从所述主数据源对应的数据库连接池内获取对应的数据库连接;
所述对所述数据源组中的所有数据源进行初始化,包括仅对bean别名为附属数据源bean名称的主数据源进行初始化。
2.如权利要求1所述的数据库连接创建方法,其特征在于,在所述对所述数据源组中的所有数据源进行初始化中,对单条待处理数据源进行初始化的过程,包括:
获取所述数据源组中除所述待处理数据源以外所有数据源的bean别名;
基于获取到的bean别名对所述待处理数据源的bean名称进行匹配;
若bean名称匹配失败,对所述待处理数据源进行初始化,创建对应的数据库连接池;若bean名称匹配成功,终止对所述待处理数据源的初始化操作。
3.如权利要求1或2所述的数据库连接创建方法,其特征在于,在所述分别读取n个所述附属数据源的bean名称之前,包括:
对所述数据源组对应预设的外部配置文件进行配置规则解析,筛选出所述数据源组中包含的n个所述附属数据源。
4.如权利要求1或2所述的数据库连接创建方法,其特征在于,在所述对所述数据源组中的所有数据源进行初始化之后,还包括:
接收对所述主数据源的数据库连接获取请求,并解析所述数据库连接获取请求对应的第一数据库连接数;
若所述第一数据库连接数大于所述预设数量,判断所述第一数据库连接数与所述主数据源对应的最大连接数量的大小关系;
若所述第一数据库连接数小于或等于所述最大连接数量,在所述主数据源的数据库连接池内创建新的数据库连接,直至所述主数据源的数据库连接池内数据库连接的数量等于所述第一数据库连接数。
5.如权利要求4所述的数据库连接创建方法,其特征在于,在所述对所述数据源组中的所有数据源进行初始化之后,还包括:
若接收到的对所述附属数据源的数据库连接获取请求对应的第二数据库连接数大于所述预设数量,判断所述第二数据库连接数与所述主数据源对应的所述最大连接数量;
若所述第二数据库连接数小于或等于所述最大连接数量,在所述主数据源的数据库连接池内创建新的数据库连接,直至所述主数据源的数据库连接池内数据库连接的数量等于所述第二数据库连接数。
6.如权利要求1或2所述的数据库连接创建方法,其特征在于,在所述对所述数据源组中的所有数据源进行初始化之后,包括:
接收对待处理数据源的数据库连接获取请求,并获取所述数据源组中除所述待处理数据源以外所有数据源的bean别名;
基于获取到的bean别名对所述待处理数据源的bean名称进行匹配;
若bean名称匹配成功,从匹配成功的bean别名所属数据源对应的数据库连接池中,提取出所述数据库连接获取请求对应的数据库连接;
若bean名称匹配失败,从所述待处理数据源对应的数据库连接池中,提取出所述数据库连接获取请求对应的数据库连接。
7.一种数据库连接创建装置,其特征在于,包括:
数据源获取模块,用于获取预设的数据源组,其中,所述数据源组内包含一个主数据源和n个附属数据源,n为自然数;
别名设置模块,用于分别读取n个所述附属数据源的bean名称,并将得到的n个bean名称均设置为所述主数据源bean的别名;
初始化模块,用于基于所述附属数据源的bean名称和所述主数据源的bean别名,对所述数据源组中的所有数据源进行初始化,得到所述主数据源对应的包含预设数量数据库连接的数据库连接池,以使得接收到对n个所述附属数据源的数据库连接获取请求时,从所述主数据源对应的数据库连接池内获取对应的数据库连接;
所述初始化模块,还用于仅对bean别名为附属数据源bean名称的主数据源进行初始化。
8.如权利要求7所述的数据库连接创建装置,其特征在于,所述初始化模块,包括:
别名获取子模块,用于获取所述数据源组中除待处理数据源以外所有数据源的bean别名;
名称匹配子模块,用于基于获取到的bean别名对所述待处理数据源的bean名称进行匹配;
初始判断子模块,用于若bean名称匹配失败,对所述待处理数据源进行初始化,创建对应的数据库连接池;若bean名称匹配成功,终止对所述待处理数据源的初始化操作。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910515116.1A CN110389977B (zh) | 2019-06-14 | 2019-06-14 | 一种数据库连接创建方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910515116.1A CN110389977B (zh) | 2019-06-14 | 2019-06-14 | 一种数据库连接创建方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389977A CN110389977A (zh) | 2019-10-29 |
CN110389977B true CN110389977B (zh) | 2022-03-08 |
Family
ID=68285445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910515116.1A Active CN110389977B (zh) | 2019-06-14 | 2019-06-14 | 一种数据库连接创建方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389977B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806813A (zh) * | 2021-08-27 | 2021-12-17 | 上海得帆信息技术有限公司 | 一种多数据源的数据隔离切换方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902777A (zh) * | 2012-09-28 | 2013-01-30 | 用友软件股份有限公司 | 跨数据源查询装置和跨数据源查询方法 |
CN109800261A (zh) * | 2018-12-15 | 2019-05-24 | 平安科技(深圳)有限公司 | 双数据库连接池的动态控制方法、装置及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130166498A1 (en) * | 2011-12-25 | 2013-06-27 | Microsoft Corporation | Model Based OLAP Cube Framework |
-
2019
- 2019-06-14 CN CN201910515116.1A patent/CN110389977B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902777A (zh) * | 2012-09-28 | 2013-01-30 | 用友软件股份有限公司 | 跨数据源查询装置和跨数据源查询方法 |
CN109800261A (zh) * | 2018-12-15 | 2019-05-24 | 平安科技(深圳)有限公司 | 双数据库连接池的动态控制方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110389977A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11275618B2 (en) | Method, device and medium for allocating resource based on type of PCI device | |
CN109375971B (zh) | 页面的布局方法及装置、存储介质、电子装置 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
CN113918232B (zh) | 一种算法服务的调用方法、装置、服务器和存储介质 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN110990116B (zh) | 在智能网卡和虚拟机之间传输数据的方法、装置和系统 | |
CN110389977B (zh) | 一种数据库连接创建方法、装置及终端设备 | |
CN110213250B (zh) | 数据处理方法及终端设备 | |
US20190004816A1 (en) | Systems and methods for heterogeneous system on a chip servers | |
CN110866382A (zh) | 一种文档生成方法、装置、终端设备及介质 | |
CN113407254A (zh) | 表单生成方法、装置、电子设备及存储介质 | |
US10303631B2 (en) | Self-moderating bus arbitration architecture | |
CN115664953B (zh) | 一种外接设备的资源分配方法及相关装置 | |
CN109254932B (zh) | 多网口驱动方法、装置及存储介质 | |
CN115878327A (zh) | 总线预留方法、装置、服务器、电子设备和存储介质 | |
CN110908746A (zh) | 一种数据处理方法、系统、可读存储介质及终端设备 | |
CN115658332A (zh) | 一种gpu共享方法及装置、电子设备和存储介质 | |
CN113923130A (zh) | 多租户的开放接口资源配置方法、装置、终端 | |
CN110347683B (zh) | 一种数据表合并处理方法及装置 | |
CN110751204A (zh) | 数据融合的方法及装置、存储介质和电子装置 | |
CN112508526A (zh) | 数据的稽核方法和装置 | |
CN110727400A (zh) | 用于分布式存储系统的流量控制方法、装置、设备和介质 | |
CN109754189A (zh) | 一种制卡任务的分配方法、一种制卡任务的获取方法、计算机装置及计算机可读存储介质 | |
CN110784342B (zh) | 一种资源扫描方法、装置、介质及终端设备 | |
EP3131241A1 (en) | Control method and control device |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Zi Yuqi Inventor after: Xian Dan Inventor before: Zi Yuqi Inventor before: Xian Dan Inventor before: Liu Tong Inventor before: Zhu Dawei Inventor before: Tang Huixiu Inventor before: Yu Fangpu Inventor before: Zhou Shisong |