如何在java中为不同的数据库创建多个数据库连接

我有一个应用程序,它使用不同地理位置的四个数据库。所有数据库都包含相同的表,只有数据库名称根据位置而不同。我必须在我的应用程序中创建一些报告,这些报告使用每个数据库中的数据。从Java应用程序创建这些数据库连接的正确方法是什么,是否有适合此任务的设计模式可供我使用?


答案 1

由于您没有用任何这些标记您的问题,因此,,,我假设您正在处理普通的JDBC。hibernateJPAORM

话虽如此,我建议您有一个DAO层来处理底层数据库,并将连接细节留给特定的实现。例如,您可以在某些文件中配置连接字符串。.properties

[补体]

您还可以使用 DAO 工厂,抽象工厂或工厂方法模式的实现,以此处适合者为准。

[友情链接]


答案 2

有多种方法可以实现此目的:

  1. 如果您使用的是任何支持分布式事务的 Java EE 容器,那么您可以使用该功能。
  2. 如果您使用的是普通的JDBC,那么您将不得不为每个数据库维护自己的连接。对于 JDBC:
    1. 提供所有连接详细信息
    2. 有一个立面,通过调用抽象的通用DAO来给你所需的对象。
    3. 有一个基于连接创建道的工厂。
  3. 使用ORM工具,如Hibernate,您可以在其中对多个数据库使用配置。教程
  4. 如果您使用的是Spring,则可以为每个数据库配置一个数据源。文档

设计模式:

  • 立面模式 - 用于隐藏复杂性和多个数据库使用情况。
  • 工厂 - 如果您自己管理数据库连接。
  • 单例 - 对于数据源

推荐