CN109739486A - 基于JdbcTemplate的多数据源数据库操作实现方法及装置 - Google Patents
基于JdbcTemplate的多数据源数据库操作实现方法及装置 Download PDFInfo
- Publication number
- CN109739486A CN109739486A CN201910005163.1A CN201910005163A CN109739486A CN 109739486 A CN109739486 A CN 109739486A CN 201910005163 A CN201910005163 A CN 201910005163A CN 109739486 A CN109739486 A CN 109739486A
- Authority
- CN
- China
- Prior art keywords
- database
- data source
- jdbctemplate
- data
- configuration
- 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
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于JdbcTemplate的多数据源数据库操作实现方法及装置,通过在Spring的配置文件便携读取多数据源数据库对应的数据库信息文件,而后将数据库信息文件对应关联数据库连接池,再将数据库连接池对应关联实例,最后编写一个父实体类及与数据库数量对应的子实体类,子实体类与父实体类为继承关系。在应用时,数据库操作接口类继承对应要访问数据库的子实体类,进而继承对应的父类,根据Spring的配置文件中实例即可实现对不同数据源的数据库的访问。
Description
技术领域
本发明涉及JAVA的数据库操作方法,尤其是指一种基于JdbcTemplate的多数据源数据库操作实现方法。
背景技术
JdbcTemplate是JAVA中一种操作数据库的技术,通过配置一个数据库连接信息,从而对数据库进行基本的CRUD(增加(Create)、查询数据(Retrieve)、更新(Update)和删除(Delete))操作。
但当前大多数JAVA项目开发中,JdbcTemplate技术仅支持单数据源,而部分使用mybatis或者hibernate的框架,使用配置都较复杂。实际应用中,又会碰到某些有多数据源需求的数据库连接场景,亟需一种简便的方案使得JdbcTemplate技术支持对多数据源操作。
发明内容
本发明所要解决的技术问题是:提供一种可简易配置就支持基于JdbcTemplate的多数据源数据库操作实现方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:一种基于JdbcTemplate的多数据源数据库操作实现方法,包括配置流程及调用流程;
所述配置流程包括步骤,
A1)编写JAVA的Spring的配置文件,使其可读取指定路径下的包含多数据源数据库的数据库信息文件;所述多数据源数据库包含至少两个数据库;
A2)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池与数据库信息文件的关联
A3)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例与数据库连接池关联;
A4)编写一个父实体类,定义JdbcTemplate属性并使其读取Spring的配置文件;
A5)编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类,并通过读取Spring的配置文件得到其对应的实例;
所述调用流程包括步骤,
B1)使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;
所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
上述中,所述配置流程的步骤A4中,编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用流程中的数据操作还包括分页查询的类型。
上述中,所述配置流程的步骤A1前还包括步骤A0,
A0)建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或。
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
本发明还涉及一种基于JdbcTemplate的多数据源数据库操作实现装置,包括配置模块及调用模块;
所述配置模块包括,
文件配置单元,用于编写JAVA的Spring的配置文件,使其可读取指定路径下的包含多数据源数据库的数据库信息文件;所述多数据源数据库包含至少两个数据库;
连接池配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池与数据库信息文件的关联;
实例配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例与数据库连接池关联;
配置父类单元,用于编写一个父实体类,定义JdbcTemplate属性并使其读取Spring的配置文件;
配置子类单元,用于编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类,并通过读取Spring的配置文件得到其对应的实例;
所述调用模块,用于使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
上述中,所述配置模块的配置父类单元,还用于编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用模块中的数据操作还包括分页查询的类型。
上述中,所述配置模块还包括初始化单元,
初始化单元,用于建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或,
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
本发明的有益效果在于:通过在Spring的配置文件便携读取多数据源数据库对应的数据库信息文件,而后将数据库信息文件对应关联数据库连接池,再将数据库连接池对应关联实例,最后编写一个父实体类及与数据库数量对应的子实体类,子实体类与父实体类为继承关系。在应用时,数据库操作接口类继承对应要访问数据库的子实体类,进而继承对应的父类,根据Spring的配置文件中实例即可实现对不同数据源的数据库的访问。
附图说明
下面结合附图详述本发明的具体结构
图1为本发明的配置流程流程图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
一种基于JdbcTemplate的多数据源数据库操作实现方法,包括配置流程及调用流程;
参阅图1,所述配置流程包括步骤,
A1)编写JAVA的Spring的配置文件PropertyPlaceholderConfigurer,使其可读取指定路径下的包含多数据源数据库的数据库信息文件jdbc.properties;所述多数据源数据库包含至少两个数据库;
A2)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池Druid与数据库信息文件jdbc.properties的关联
A3)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例bean与数据库连接池Druid关联;
A4)编写一个父实体类BaseDao,定义JdbcTemplate属性及ApplicationContext,使其读取Spring的配置文件;
A5)编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类BaseDao,并通过读取Spring的配置文件得到其对应的实例bean,即通过ApplicationContext使得每个子实体类继承父实体类的JdbcTemplate属性,及读取Spring的配置文件中对应的具体的bean。
所述调用流程包括步骤,
B1)使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;
所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
在具体需要调用数据库时,通过dao类(即数据库操作接口类),(extend)继承所需访问数据源数据库对应的子实体类,使用getJdbcTemplate()方法获取JdbcTemplate的不同数据源的数据库对象,通过写入sql语句,继承子实体类的完成对主数据库的操作,继承子实体类向对应的数据库操作,通过直接调用JdbcTemplate此开源技术的query(查询数据),update(包含新增数据、更新数据、删除数据),实现了对不同数据库的CRUD操作。
从上述描述可知,本发明的有益效果在于:通过在Spring的配置文件便携读取多数据源数据库对应的数据库信息文件,而后将数据库信息文件对应关联数据库连接池,再将数据库连接池对应关联实例,最后编写一个父实体类及与数据库数量对应的子实体类,子实体类与父实体类为继承关系。在应用时,数据库操作接口类继承对应要访问数据库的子实体类,进而继承对应的父类,根据Spring的配置文件中实例即可实现对不同数据源的数据库的访问。
实施例1
上述中,所述配置流程的步骤A4中,编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用流程中的数据操作还包括分页查询的类型。
本实施例中,通过在父实体类中编写(封装)新的功能后,访问各数据库的子实体类就可可很方便通过继承父类,从而为所有数据库的访问增加对应的功能,如分页查询等。使得整个JdbcTemplate相关方法在能够满足基本的CRUD操作基础上,还可根据需求进行诸如分页查询等复杂功能的定制需求进行二次开发。
实施例2
上述中,所述配置流程的步骤A1前还包括步骤A0,
A0)建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或。
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
建立一个数据库信息文件存放多数据源数据库的数据库信息的方案,可简化文件的读取。实现方式,可在数据库信息文件中以识别码+键(KEY)——值(VALUE)形式存放对应数据库的用户名、密码,例如,多数据源数据库A和B,一个数据库信息文件data中就存放A.user=XXX,A.password=xxx,B.user=YYY,B.password=yyy,由此读取的时候通过A.和B.来区分是那个数据库对应的用户名,密码。
本发明还涉及一种基于JdbcTemplate的多数据源数据库操作实现装置,包括配置模块及调用模块;
所述配置模块包括,
文件配置单元,用于编写JAVA的Spring的配置文件,使其可读取指定路径下的包含多数据源数据库的数据库信息文件;所述多数据源数据库包含至少两个数据库,而后转到连接池配置单元;
连接池配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池与数据库信息文件的关联,而后转到实例配置单元;
实例配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例与数据库连接池关联,而后转到配置父类单元;
配置父类单元,用于编写一个父实体类,定义JdbcTemplate属性并使其读取Spring的配置文件,而后转到配置子类单元;
配置子类单元,用于编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类,并通过读取Spring的配置文件得到其对应的实例,而后转到调用模块;
所述调用模块,用于使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
从上述描述可知,本发明的有益效果在于:通过在Spring的配置文件便携读取多数据源数据库对应的数据库信息文件,而后将数据库信息文件对应关联数据库连接池,再将数据库连接池对应关联实例,最后编写一个父实体类及与数据库数量对应的子实体类,子实体类与父实体类为继承关系。在应用时,数据库操作接口类继承对应要访问数据库的子实体类,进而继承对应的父类,根据Spring的配置文件中实例即可实现对不同数据源的数据库的访问。
实施例3
上述中,所述配置模块的配置父类单元,还用于编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用模块中的数据操作还包括分页查询的类型。
实施例4
上述中,所述配置模块还包括初始化单元,
初始化单元,用于建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或,
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种基于JdbcTemplate的多数据源数据库操作实现方法,其特征在于:包括配置流程及调用流程;
所述配置流程包括步骤,
A1)编写JAVA的Spring的配置文件,使其可读取指定路径下的包含多数据源数据库的数据库信息文件;所述多数据源数据库包含至少两个数据库;
A2)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池与数据库信息文件的关联;
A3)在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例与数据库连接池关联;
A4)编写一个父实体类,定义JdbcTemplate属性并使其读取Spring的配置文件;
A5)编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类,并通过读取Spring的配置文件得到其对应的实例;
所述调用流程包括步骤,
B1)使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;
所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
2.如权利要求1所述的基于JdbcTemplate的多数据源数据库操作实现方法,其特征在于:所述配置流程的步骤A4中,编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用流程中的数据操作还包括分页查询的类型。
3.如权利要求1所述的基于JdbcTemplate的多数据源数据库操作实现方法,其特征在于:所述配置流程的步骤A1前还包括步骤A0,
A0)建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或,
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
4.一种基于JdbcTemplate的多数据源数据库操作实现装置,其特征在于:包括配置模块及调用模块;
所述配置模块包括,
文件配置单元,用于编写JAVA的Spring的配置文件,使其可读取指定路径下的包含多数据源数据库的数据库信息文件;所述多数据源数据库包含至少两个数据库;
连接池配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的数据库连接池与数据库信息文件的关联;
实例配置单元,用于在JAVA的Spring的配置文件中编写与多数据源数据库的数据库数量一一对应的JdbcTemplate的实例与数据库连接池关联;
配置父类单元,用于编写一个父实体类,定义JdbcTemplate属性并使其读取Spring的配置文件;
配置子类单元,用于编写与多数据源数据库的数据库数量一一对应的多个子实体类,每个子实体类继承父实体类,并通过读取Spring的配置文件得到其对应的实例;
所述调用模块,用于使用SQL语句调用数据库操作接口类继承所需操作多数据源数据库中数据库对应的子实体类进行不同类型的数据操作;所述数据操作包括增加、查询数据、更新、删除中的一种或多种类型。
5.如权利要求4所述的基于JdbcTemplate的多数据源数据库操作实现装置,其特征在于:所述配置模块的配置父类单元,还用于编写父实体类时基于JdbcTemplate编写分页查询的数据操作类型;
所述调用模块中的数据操作还包括分页查询的类型。
6.如权利要求4所述的基于JdbcTemplate的多数据源数据库操作实现装置,其特征在于:所述配置模块还包括初始化单元,
初始化单元,用于建立与多数据源数据库的数据库数量一一对应的数据库信息文件;或,
建立一个数据库信息文件,数据库信息文件对应存储多数据源数据库的数据库信息;
所述数据库信息文件包含需访问数据库的用户名、密码信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005163.1A CN109739486A (zh) | 2019-01-03 | 2019-01-03 | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005163.1A CN109739486A (zh) | 2019-01-03 | 2019-01-03 | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109739486A true CN109739486A (zh) | 2019-05-10 |
Family
ID=66363222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910005163.1A Pending CN109739486A (zh) | 2019-01-03 | 2019-01-03 | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739486A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037686A (zh) * | 2019-12-24 | 2021-06-25 | 中国电信股份有限公司 | 多数据库安全通信方法和系统、计算机可读存储介质 |
CN113094360A (zh) * | 2021-03-19 | 2021-07-09 | 北京优奥创思科技发展有限公司 | 一种跨行业数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN104484182A (zh) * | 2014-12-25 | 2015-04-01 | 广东电子工业研究院有限公司 | 一种弹性可扩展的多数据源mvc模型架构 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及系统 |
CN106095878A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 基于分库分表的数据库操作装置及方法 |
-
2019
- 2019-01-03 CN CN201910005163.1A patent/CN109739486A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN104484182A (zh) * | 2014-12-25 | 2015-04-01 | 广东电子工业研究院有限公司 | 一种弹性可扩展的多数据源mvc模型架构 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及系统 |
CN106095878A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 基于分库分表的数据库操作装置及方法 |
Non-Patent Citations (1)
Title |
---|
演员赵诗绎: "spring jdbctemplate配置多数据源", 《HTTPS://BLOG.CSDN.NET/U013144287/ARTICLE/DETAILS/77503113》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037686A (zh) * | 2019-12-24 | 2021-06-25 | 中国电信股份有限公司 | 多数据库安全通信方法和系统、计算机可读存储介质 |
CN113037686B (zh) * | 2019-12-24 | 2022-11-29 | 中国电信股份有限公司 | 多数据库安全通信方法和系统、计算机可读存储介质 |
CN113094360A (zh) * | 2021-03-19 | 2021-07-09 | 北京优奥创思科技发展有限公司 | 一种跨行业数据处理方法 |
CN113094360B (zh) * | 2021-03-19 | 2023-11-10 | 北京优奥创思科技发展有限公司 | 一种跨行业数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144040B (zh) | 用于基于通信上下文确定预测文本建议的系统和方法 | |
CN108334534A (zh) | 业务系统字段配置方法、装置、服务器及可读存储介质 | |
JP4755427B2 (ja) | データベース・アクセス・システム、データベース・アクセス方法 | |
CN111797073B (zh) | 数据库管理方法、电子设备与计算机可读存储介质 | |
CN103810196A (zh) | 基于业务模型进行数据库性能测试的方法 | |
CA2302301A1 (en) | Effective dated tree control in a component based-object oriented convergent customer care and billing system | |
CN110020063B (zh) | 垂直搜索方法和系统 | |
CN109739486A (zh) | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 | |
US20120078905A1 (en) | Manipulating non-schema attributes for objects in a schema based directory | |
EP2965492B1 (en) | Selection of data storage settings for an application | |
CN110378778A (zh) | 多数据源对账方法、系统、电子设备及存储介质 | |
CN114329082A (zh) | 一种基于hugegraph的数据血缘关系分析方法和系统 | |
CN112269982A (zh) | 基于权限配置的数据访问控制的方法 | |
CN100472560C (zh) | 手写体识别的个性化系统和方法 | |
CN114546563A (zh) | 一种多租户页面访问控制方法和系统 | |
CN103179248A (zh) | 一种显示联系人的方法、装置及移动设备 | |
US11899660B2 (en) | Systems and methods for optimized cloud database query execution | |
CN104394518A (zh) | 一种短信发送方法及短信平台 | |
CN105653277A (zh) | 一种简化java程序下查询数据表指定字段数据、多表联合查询、统计查询的方法 | |
CN102193947B (zh) | 数据访问处理方法及系统 | |
CN115878655A (zh) | 数据操作方法、装置、计算机设备和存储介质 | |
CN108062313A (zh) | 用于留存用户分析的方法、电子设备和服务器 | |
US7324994B2 (en) | Uniquely identifying an object before it is stored in a database | |
CN105897989A (zh) | 联系人的创建方法及装置 | |
CN110059120A (zh) | 异构数据的web集成方法及装置 |
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: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |