第2章 JDBC データソースの設定


JDBC は、Java ベースのアプリケーションで最も一般的に使用されているデータベース接続 API です。JDBC データソースドライバーを使用して、アプリケーションをリレーショナルデータベースに接続できます。

JDBC データソースを設定するには、以下を行う必要があります。

  • quarkus-agroal エクステンションのアプリケーションへの追加
  • アプリケーションへの db-kind エクステンションの追加
  • アプリケーションがデータソースにアクセスするために使用する JDBC URL の指定

以下の例は、postgresql データソースをアプリケーションに接続し、データベースのアクセス認証情報と JDBC URL を指定する方法を示しています。JDBC URL の指定方法に関する詳細は、「データソースの JDBC URL の設定」 を参照してください。

JDBC データソースの設定例

quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=<your_username>
quarkus.datasource.password=<your_password>

quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/hibernate_orm_test
quarkus.datasource.jdbc.max-size=16
Copy to Clipboard Toggle word wrap

2.1. JDBC データソースの Quarkus エクステンションのインストール

JDBC データソースを設定するには、quarkus-agroal エクステンションおよび Quarkus JDBC データベースドライバーエクステンションをインストールする必要があります。追加する JDBC データベースドライバーは、使用する JDBC データベースのタイプと一致する必要があります。

以下の手順では、JDBC データソースの Quarkus エクステンションをインストールする方法を説明します。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • データソースの db-kind プロパティーを設定していること。

手順

  1. Quarkus プロジェクトディレクトリーに移動します。
  2. quarkus-agroal エクステンションをプロジェクトに追加します。

    ./mvnw quarkus:add-extension -Dextensions="agroal"
    Copy to Clipboard Toggle word wrap
  3. 適切なタイプのリレーショナルデータベースドライバーの Quarkus エクステンションをアプリケーションに追加します。

    ./mvnw quarkus:add-extension -Dextensions="<extension>"
    Copy to Clipboard Toggle word wrap

    たとえば、PostgreSQL データベースドライバーエクステンションを追加するには、以下を使用します。

    ./mvnw quarkus:add-extension -Dextensions="jdbc-postgresql"
    Copy to Clipboard Toggle word wrap
注記

Hibernate ORM を使用している場合は、Agroal エクステンションの依存関係を明示的に追加する必要はありません。Agroal は、Hibernate ORM エクステンションの推移的な依存関係です。Hibernate ORM で JDBC データソースドライバーを使用する必要があります。

2.2. データソースの JDBC URL の設定

JDBC データソースの設定を完了するには、JDBC URL を設定する必要があります。以下の手順は、JDBC URL の設定方法を示しています。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • 対応するデータソースドライバーをアプリケーションに追加していること。
  • データソースの db-kind プロパティーを設定していること。

手順

  1. Quarkus プロジェクトディレクトリーに移動します。
  2. src/main/resources/application.properties ファイルを開きます。
  3. データソースの JDBC URL に一致するように、quarkus.datasource.jdbc.url プロパティーの値を設定します。

    quarkus.datasource.jdbc.url=<JDBC_URL>
    Copy to Clipboard Toggle word wrap

    たとえば、PostgreSQL データソースの JDBC URL を設定するには、以下を使用します。

    quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/hibernate_orm_test
    Copy to Clipboard Toggle word wrap

2.3. Hibernate ORM を使用した JDBC データソースの取得

Hibernate ORM を使用している場合は、アプリケーションが自動的に認識し、利用可能な JDBC データソースに接続します。アプリケーションコードでデータソースにアクセスするには、CDI Bean として取得できます。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • Hibernate ORM がインストールされていること。

手順

  • アプリケーションコードでデータソースにアクセスするには、@Inject アノテーションを dataSource プロパティーに追加します。

    import javax.sql.DataSource;
    
    @Inject DataSource dataSource;
    Copy to Clipboard Toggle word wrap

2.4. 同時設定での JDBC データソースの無効化

アプリケーションの同じデータソース用に、JDBC ドライバーエクステンションとリアクティブドライバーエクステンションを同時に設定することができます。同時設定で JDBC データソースドライバーを無効にできることから、アプリケーションがリアクティブデータソースドライバーを使用するように強制できます。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • アプリケーションに、JDBC データソースドライバーとリアクティブデータソースドライバーを同時に設定していること。

手順

  1. Quarkus プロジェクトディレクトリーに移動します。
  2. src/main/resources/application.properties ファイルを開きます。
  3. quarkus.datasource.jdbc プロパティーを false に設定して JDBC データソースを無効にします。

    quarkus.datasource.jdbc=false
    Copy to Clipboard Toggle word wrap

2.5. ビルトインドライバーエクステンションのない JDBC ドライバーの設定

ビルトインドライバーエクステンションのない JDBC ドライバーおよびデータベースを使用できます。以下の手順は、ビルトインエクステンションのない JDBC ドライバーの設定方法を示しています。

注記

Quarkus アプリケーションを JVM モードで使用している間は、任意の JDBC ドライバーを使用できます。Quarkus をネイティブ実行可能ファイルとしてコンパイルすると、含まれていない JDBC ドライバーが正しく機能しない可能性があります。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • Quarkus アプリケーションが JVM モードになっていること。
  • プロジェクトの pom.xml ファイルに、依存関係として使用するデータソースドライバーが追加されていること。

手順

  1. Quarkus プロジェクトディレクトリーに移動します。
  2. src/main/resources/application.properties ファイルを開きます。
  3. db-kind プロパティーの値を other に設定します。

    quarkus.datasource.db-kind=other
    Copy to Clipboard Toggle word wrap
  4. 使用するドライバーエクステンションのタイプに一致するように、quarkus.datasource.jdbc.driver プロパティーの値を設定します。

    quarkus.datasource.jdbc.driver=<driver>
    Copy to Clipboard Toggle word wrap
  5. データソースの JDBC URL に一致するように、quarkus.datasource.jdbc.url プロパティーの値を設定します。

    quarkus.datasource.jdbc.url=<JDBC_URL>
    Copy to Clipboard Toggle word wrap

    たとえば、Quarkus は OpenTracing ドライバーのビルトインドライバーエクステンションを提供しません。opentracing-jdbc アーティファクトを pom.xml ファイルに追加し、application.properties ファイルに以下のプロパティーを設定して OpenTracing ドライバーを設定します。

    quarkus.datasource.db-kind=postgresql
    quarkus.datasource.jdbc.url=jdbc:tracing:postgresql://localhost:5432/mydatabase
    quarkus.datasource.jdbc.driver=io.opentracing.contrib.jdbc.TracingDriver
    quarkus.hibernate-orm.dialect=org.hibernate.dialect.PostgreSQLDialect
    Copy to Clipboard Toggle word wrap

2.6. 複数の JDBC データソースの設定

Agroal を使用して、Quarkus アプリケーションの複数の JDBC データソースを設定できます。

注記

Hibernate ORM エクステンションを使用する場合は、永続データストレージユニットを 1 つだけアプリケーションに追加できます。Hibernate ORM エクステンションによって管理される永続データストレージユニットは、デフォルトの JDBC データソースタイプを使用します。

前提条件

  • Quarkus Maven プロジェクトがあること。
  • JDBC データソースが複数あること。

手順

  1. Quarkus プロジェクトディレクトリーに移動します。
  2. src/main/resources/application.properties ファイルで、各データソースに以下のプロパティーを設定します。

    • データソースの名前(たとえば、データソースの名前に users を選択した場合、データソースの完全修飾参照は quarkus.datasource.users になります)
    • データソースのタイプに一致する db-kind プロパティー
    • データソースのユーザー名を指定する quarkus.datasource.username
    • データソースの JDBC 接続 URL を指定する quarkus.datasource.jdbc.url
    • データソースの接続プールで保持される接続の最小数を指定する quarkus.datasource.jdbc.min-size プロパティー
    • データソースの接続プールで保持される接続の最大数を指定する quarkus.datasource.jdbc.max-size プロパティー

      以下の例は、3 つの JDBC データソースの完全な設定を示しています。

      quarkus.datasource.db-kind=h2
      quarkus.datasource.username=username-default
      quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default
      quarkus.datasource.jdbc.min-size=3
      quarkus.datasource.jdbc.max-size=13
      
      quarkus.datasource.users.db-kind=h2
      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
  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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat