CN108846118A - 一种智能适配多数据源的实现方法 - Google Patents
一种智能适配多数据源的实现方法 Download PDFInfo
- Publication number
- CN108846118A CN108846118A CN201810675736.7A CN201810675736A CN108846118A CN 108846118 A CN108846118 A CN 108846118A CN 201810675736 A CN201810675736 A CN 201810675736A CN 108846118 A CN108846118 A CN 108846118A
- Authority
- CN
- China
- Prior art keywords
- data source
- source
- call method
- business datum
- call
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种智能适配多数据源的实现方法,涉及数据源处理的技术领域,包括以下步骤:步骤1.配置数据源的关键信息;步骤2.根据需操控的数据源的关键信息定义调用方法的方法名;步骤3.将调用方法的方法名和数据源的关键信息进行匹配,根据匹配结果确定该调用方法使用的数据源。该方法通过在项目工程中的配置文件里配置数据源信息,便于随时更改数据源信息,避免了开发过程中,需要一一设置每个调用方法操控的数据源,通过智能解析每个调用方法操控的数据源,减少了代码冗余性,提高了开发效率,又易于维护。
Description
技术领域
本发明涉及数据源处理的技术领域,具体涉及一种智能适配多数据源的实现方法。
背景技术
数据因其隐含着重要的信息和规律,成为用户提供服务的基础。随着信息技术和互联网的蓬勃发展,数据作为重要的生产因素已经渗透到当今每一个行业,并在不断膨胀变大。数据源(Data Source)是提供某种所需要数据的器件或原始媒体,在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
数据库应用中,数据源作为数据库连接管理的标准接口,应用实例通过数据源获取到数据库的连接。应用实例通过内嵌的客户端与配置系统服务器交互。数据源的配置参数通常包括数据库IP、端口、schema、用户名、密码等等连接参数。对于提供连接池功能的数据源来说,数据源的配置参数还包括最大连接数、最小连接数、空闲连接销毁时间等等容量参数。随着信息化技术的推进及新的实例单元的不断发布、融入和集成,应用系统中多个数据库存储介质并存的现象已越来越普遍。当对系统中的实体类数据进行增删改查时,需要将每个实体类所属的数据源在方法中申明,不利于多数据源的数据的处理和管理,导致代码冗余度高,开发效率慢。
发明内容
本发明的目的在于:为解决开发过程中,多数据源的数据处理和管理不灵活而导致开发效率慢的问题,提供了一种智能适配多数据源的实现方法。
本发明采用的技术方案如下:
一种智能适配多数据源的实现方法,包括以下步骤:
步骤1.配置数据源的关键信息;
步骤2.根据需操控的数据源的关键信息定义调用方法的方法名;
步骤3.将调用方法的方法名和数据源的关键信息进行匹配,根据匹配结果确定该调用方法使用的数据源。
进一步地,所述数据源包含一个默认数据源和N(N≥0)个业务数据源。
进一步地,所述步骤1的具体方法为:在项目工程下的配置文件中定义每个数据源的关键字。
进一步地,可在配置文件中声明业务数据源适用的路径。
进一步地,所述步骤3的具体步骤如下:
步骤3.1.根据调用方法的方法名匹配业务数据源的关键字,若匹配成功,则进入步骤3.4;若匹配失败,则进入步骤3.2;
步骤3.2.根据调用方法所在路径匹配业务数据源适用的路径,若匹配成功,则进入步骤3.4;匹配失败,则进入步骤3.3;
步骤3.3.将默认数据源作为所述调用方法使用的数据源;
步骤3.4.将匹配成功的业务数据源作为所述调用方法使用的数据源。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明中,首先通过调用方法的方法名与项目工程下的配置文件中的数据源的关键字进行匹配,若匹配成功,则该调用方法操控匹配成功的业务数据源;若匹配失败,再根据调用方法所在项目工程中的路径与配置文件中的数据源信息进行匹配,若匹配成功,则该调用方法操控匹配成功的业务数据源;若匹配失败,则该调用方法操控默认数据源。该方法避免了开发过程中,需要一一设置每个调用方法操控的数据源,通过智能解析每个调用方法操控的数据源,减少了代码冗余性,提高了开发效率。
2、本发明中,通过在配置文件中声明业务数据源适用的路径,使调用方法在与数据源的关键字匹配失败后,还可通过自身所在路径与业务数据源适用的路径相匹配,提高了匹配的准确率。
3、本发明中,通过在项目工程中的配置文件里配置数据源信息,便于随时更改数据源信息,开发效率高,又易于维护。通过在配置文件中设置默认数据源,提高了开发的稳定性和有效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明的整体流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
一种智能适配多数据源的实现方法,包括以下步骤:
步骤1.配置数据源的关键信息。数据源包含一个默认数据源和N(N≥0)个业务数据源,在项目工程的配置文件中须定义每个数据源的关键字(即别名),且每个数据源的关键字须不相同。当配置文件中存在业务数据源,则可在配置文件中声明各个业务数据源适用的路径。
步骤2.根据需操控的数据源的关键信息定义调用方法的方法名。调用方法的方法名包括以下三种情况:(1)可与某个业务数据源的关键字相匹配;(2)可与某个业务数据源适用的路径相匹配;(3)与所有业务数据源的关键字及适用的路径均不匹配。
步骤3.将调用方法的方法名和数据源的关键信息进行匹配,根据匹配结果确定该调用方法使用的数据源。包括以下步骤:
步骤3.1.根据调用方法的方法名匹配业务数据源的关键字,若匹配成功,则进入步骤3.4;若匹配失败,则进入步骤3.2。
步骤3.2.根据调用方法所在路径匹配业务数据源适用的路径,若匹配成功,则进入步骤3.4;匹配失败,则进入步骤3.3。
步骤3.3.将默认数据源作为所述调用方法使用的数据源。
步骤3.4.将匹配成功的业务数据源作为所述调用方法使用的数据源。
当数据源中至包含一个默认数据源时,各个调用方法直接操控默认数据源。当某一调用方法的方法名即匹配业务数据源的关键字,其所在路径又匹配其它的业务数据源适用的路径时,首选根据方法名匹配成功的业务数据源。
以下结合实施例对本发明的特征和性能作进一步的详细描述。
实施例1
本发明较佳实施例提供的一种智能适配多数据源的实现方法,涉及到的数据源包括一个关键字为“defaultDataSource”的默认数据源和两个关键字分别为“DataSource_1”和“DataSource_2”的业务数据源。项目工程中的“project1/test1/person.java”存在三个方法名分别为“findByDataSource_1”、“findByDataSource_2”和“findByDataSource_3”的调用方法。在访问各个调用方法时,首先判断被访问的调用方法的方法名中是否包含“DataSource_1”或“DataSource_2”。例如:在访问方法名为“findByDataSource_1”的调用方法时,该方法名中包含有“DataSource_1”的字眼,则方法名为“findByDataSource_1”的调用方法直接操控关键字设为“DataSource_1”的数据源,同理可知,方法名为“findByDataSource_2”的调用方法直接操控关键字设为“DataSource_2”的数据源。在访问方法名为“findByDataSource_3”的调用方法时,该方法名中即不包含有“DataSource_1”的字眼,又不包含有“DataSource_2”的字眼,无法匹配到正确的业务数据源,因此,方法名为“findByDataSource_3”的调用方法直接操控关键字为“defaultDataSource”的默认数据源。该方法避免了开发过程中,需要一一设置每个调用方法操控的数据源,通过智能解析每个调用方法操控的数据源,减少了代码冗余性,提高了开发效率。通过在项目工程中的配置文件里配置数据源信息,便于随时更改数据源信息,开发效率高,又易于维护。通过在配置文件中设置默认数据源,提高了开发的稳定性和有效性。
实施例2
在实施例一的基础上,给关键字为“DataSource_1”的业务数据源声明该业务数据源适用的路径为“project1/test1/person.java”。因此,方法名为“findByDataSource_3”的调用方法在根据关键字匹配不成功后,可通过该调用方法所在的路径与业务数据源声明的使用的路径进行匹配。因方法名为“findByDataSource_3”的调用方法所在的路径与关键字为“DataSource_1”的业务数据源适用的路径相匹配,所以,方法名为“findByDataSource_1”和“findByDataSource_3”的调用方法均直接操控关键字设为“DataSource_1”的业务数据源,方法名为“findByDataSource_2”的调用方法直接操控关键字设为“DataSource_2”的数据源。通过在配置文件中声明业务数据源适用的路径,使调用方法在与数据源的关键字匹配失败后,还可通过自身所在路径与业务数据源适用的路径相匹配,避免了因方法名有误或其他原因而导致最终操控的数据源非预先设想的数据源,提高了匹配的准确率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种智能适配多数据源的实现方法,其特征在于,包括以下步骤:
步骤1.配置数据源的关键信息;
步骤2.根据需操控的数据源的关键信息定义调用方法的方法名;
步骤3.将调用方法的方法名和数据源的关键信息进行匹配,根据匹配结果确定该调用方法使用的数据源。
2.根据权利要求1所述的一种智能适配多数据源的实现方法,其特征在于,所述数据源包含一个默认数据源和N(N≥0)个业务数据源。
3.根据权利要求2所述的一种智能适配多数据源的实现方法,其特征在于,所述步骤1的具体方法为:在项目工程下的配置文件中定义每个数据源的关键字。
4.根据权利要求3所述的一种智能适配多数据源的实现方法,其特征在于,可在配置文件中声明业务数据源适用的路径。
5.根据权利要求4所述的一种智能适配多数据源的实现方法,其特征在于,所述步骤3的具体步骤如下:
步骤3.1.根据调用方法的方法名匹配业务数据源的关键字,若匹配成功,则进入步骤3.4;若匹配失败,则进入步骤3.2;
步骤3.2.根据调用方法所在路径匹配业务数据源适用的路径,若匹配成功,则进入步骤3.4;匹配失败,则进入步骤3.3;
步骤3.3.将默认数据源作为所述调用方法使用的数据源;
步骤3.4.将匹配成功的业务数据源作为所述调用方法使用的数据源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810675736.7A CN108846118A (zh) | 2018-06-27 | 2018-06-27 | 一种智能适配多数据源的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810675736.7A CN108846118A (zh) | 2018-06-27 | 2018-06-27 | 一种智能适配多数据源的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108846118A true CN108846118A (zh) | 2018-11-20 |
Family
ID=64202856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810675736.7A Pending CN108846118A (zh) | 2018-06-27 | 2018-06-27 | 一种智能适配多数据源的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108846118A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084747A (zh) * | 2020-09-17 | 2020-12-15 | 瑞庭网络技术(上海)有限公司 | 一种资源管理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270340A1 (en) * | 2007-04-24 | 2008-10-30 | Kryptiq Corporation | Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer |
CN102508706A (zh) * | 2011-11-18 | 2012-06-20 | 北京航空航天大学 | 一种多源数据集成平台及其构建方法 |
CN105488174A (zh) * | 2015-12-01 | 2016-04-13 | 北京浩瀚深度信息技术股份有限公司 | 基于bs结构的多分布式数据源管理方法及系统 |
CN106383914A (zh) * | 2016-10-21 | 2017-02-08 | 广东亿迅科技有限公司 | 基于云呼叫平台实现多数据源配置的方法及其系统 |
CN106709030A (zh) * | 2016-12-28 | 2017-05-24 | 深圳市华傲数据技术有限公司 | 数据源管理功能的开发方法及系统 |
CN107329809A (zh) * | 2017-07-05 | 2017-11-07 | 国网信息通信产业集团有限公司 | 一种面向多数据源的分布式事务处理方法及系统 |
-
2018
- 2018-06-27 CN CN201810675736.7A patent/CN108846118A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270340A1 (en) * | 2007-04-24 | 2008-10-30 | Kryptiq Corporation | Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer |
CN102508706A (zh) * | 2011-11-18 | 2012-06-20 | 北京航空航天大学 | 一种多源数据集成平台及其构建方法 |
CN105488174A (zh) * | 2015-12-01 | 2016-04-13 | 北京浩瀚深度信息技术股份有限公司 | 基于bs结构的多分布式数据源管理方法及系统 |
CN106383914A (zh) * | 2016-10-21 | 2017-02-08 | 广东亿迅科技有限公司 | 基于云呼叫平台实现多数据源配置的方法及其系统 |
CN106709030A (zh) * | 2016-12-28 | 2017-05-24 | 深圳市华傲数据技术有限公司 | 数据源管理功能的开发方法及系统 |
CN107329809A (zh) * | 2017-07-05 | 2017-11-07 | 国网信息通信产业集团有限公司 | 一种面向多数据源的分布式事务处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
CWALET: "Spring AOP根据JdbcTemplate方法名动态设置数据源", 《HTTPS://MY.OSCHINA.NET/CWALET/BLOG/36055》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084747A (zh) * | 2020-09-17 | 2020-12-15 | 瑞庭网络技术(上海)有限公司 | 一种资源管理方法、装置、电子设备及存储介质 |
CN112084747B (zh) * | 2020-09-17 | 2024-02-02 | 瑞庭网络技术(上海)有限公司 | 一种资源管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995124B2 (en) | Query language interoperability in a graph database | |
US9047392B2 (en) | System and method for conversion of JMS message data into database transactions for application to multiple heterogeneous databases | |
US7970823B2 (en) | System for sharing data objects among applications | |
US7546335B2 (en) | System and method for a data protocol layer and the transfer of data objects using the data protocol layer | |
US9239767B2 (en) | Selective database replication | |
US20230127055A1 (en) | Global column indexing in a graph database | |
CA2503757C (en) | Method and apparatus for validation and error resolution of configuration data in a private branch exchange switch | |
WO2006007126A2 (en) | Soap-based web services in a multi-tenant database system | |
US20140019616A1 (en) | Systems and methods for business network management discovery and consolidation | |
US20080133533A1 (en) | Migrating Credentials to Unified Identity Management Systems | |
US7155479B2 (en) | Increasing the level of automation when configuring network services | |
US7962484B2 (en) | LDAP bulk append | |
CN108388623A (zh) | Er关系生成方法、装置、计算机设备及存储介质 | |
EP3974960A1 (en) | Method and system for automated testing of web service apis | |
CN108846118A (zh) | 一种智能适配多数据源的实现方法 | |
US20070078840A1 (en) | Custom function library for inverse query evaluation of messages | |
US8700575B1 (en) | System and method for initializing a network attached storage system for disaster recovery | |
CN111045660A (zh) | 一种网上税务申报数据校验方法、装置及存储介质 | |
US20110153563A1 (en) | Enhanced replication of databases | |
Bonsma et al. | Extremal graphs having no matching cuts | |
Cisco | Working With Phones, CTI Ports, and User Combinations | |
US7236587B2 (en) | Systems and methods for determining critical circuit diversity | |
CN115827634A (zh) | 一种数据转换方法、装置及存储介质 | |
WO2008079006A1 (en) | Identification registration system | |
CN115292319A (zh) | 在关系型数据库中处理json数据的方法和装置 |
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 |
Application publication date: 20181120 |
|
RJ01 | Rejection of invention patent application after publication |