2.6. 配置多个 JDBC 数据源


您可以使用 Agroal 为 Quarkus 应用程序配置多个 JDBC 数据源。

注意

使用 Hibernate ORM 扩展时,您可以将多个持久数据存储单元添加到应用程序中。对于每个持久性单元,您可以指向您选择的数据源。

先决条件

  • 您有一个 Quarkus Maven 项目。
  • 您有多个 JDBC 数据源。

流程

  1. 进入 Quarkus 项目目录。
  2. src/main/resources/application.properties 文件中,为每个数据源设置以下属性:

    以下示例显示了 3 JDBC 数据源的完整配置:

    quarkus.datasource.db-kind=h2 
    1
    
    quarkus.datasource.username=username-default 
    2
    
    quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default 
    3
    
    quarkus.datasource.jdbc.min-size=3 
    4
    
    quarkus.datasource.jdbc.max-size=13 
    5
    
    
    quarkus.datasource.users.db-kind=h2 
    6
    
    quarkus.datasource.users.username=username1
    quarkus.datasource.users.jdbc.url=jdbc:h2:tcp://localhost/mem:users
    quarkus.datasource.users.jdbc.min-size=1
    quarkus.datasource.users.jdbc.max-size=11
    
    quarkus.datasource.inventory.db-kind=h2
    quarkus.datasource.inventory.username=username2
    quarkus.datasource.inventory.jdbc.url=jdbc:h2:tcp://localhost/mem:inventory
    quarkus.datasource.inventory.jdbc.min-size=2
    quarkus.datasource.inventory.jdbc.max-size=12
    Copy to Clipboard Toggle word wrap
    1
    要使用的数据源的类型。
    2
    数据源的用户名。
    3
    数据源的 JDBC 连接 URL。
    4
    在数据源的连接池中维护的最小连接数量。
    5
    在数据源的连接池中维护的最大连接数。
    6
    如果选择 用户 作为数据源的名称,则数据源的完全限定引用为 quarkus.datasource.users
  3. 通过将 @Inject 注释添加到其中一个类属性,将多个数据源注入到其中。当您为应用程序配置多个数据源时,请确保将 io.quarkus.agroal.DataSource 限定程序添加为每个 DataSource 类的值:

    import javax.inject.Inject;
    import io.agroal.api.AgroalDataSource;
    import io.quarkus.agroal.DataSource;
    
    @Inject
    AgroalDataSource defaultDataSource;
    
    @Inject
    @DataSource("users")
    AgroalDataSource usersDataSource;
    
    @Inject
    @DataSource("inventory")
    AgroalDataSource inventoryDataSource;
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat