第1章 Quarkus でのデータソース使用の概要
アプリケーションに永続データストレージを追加する場合は、アプリケーションをリレーショナルデータベースに接続する必要があります。これには、データベースドライバーを使用してアプリケーションに接続するデータソースを使用します。Quarkus アプリケーションを 1 つまたは複数のデータソースに接続できます。Quarkus に統合されているデータソース管理機能を使用して、以下を行うことができます。
- 1 つまたは複数のデータソースを使用するようにアプリケーションを設定
- コードでのデータソースへの参照の取得
- プールチューニング設定プロパティーの表示および設定
Quarkus アプリケーションで、2 種類のデータベースドライバーを使用して、アプリケーションをリレーショナルデータベースに接続できます。1 つのアプリケーションで、両方のタイプの複数のデータソースを同時に使用できます。
- JDBC ドライバー
- Java ベースのアプリケーションのデータベース接続を提供する標準の JDBC API を使用します。Quarkus JDBC ドライバーは、Agroal を使用してデータベース接続を管理します。Agroal は、Quarkus の他の機能 (セキュリティー、トランザクション管理、ヘルスチェックなど) と統合された、高速、軽量、および非常にスケーラブルはデータベース接続プール実装です。
- リアクティブドライバー
- これは、Eclipse Vert.x のデータソースドライバー実装に基づいています。Eclipse Vert.x リアクティブデータソースドライバーは、Quarkus のノンブロッキングおよびリアクティブネットワーク関連の機能を提供し、非常にスケーラブルでイベント駆動型のアプリケーションに適しています。
Quarkus が提供する統一された柔軟な設定オプションのセットを使用して、両方のタイプのデータソースドライバーを設定できます。
1.1. データソースの db-kind プロパティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
使用するデータソースのタイプと一致するように、アプリケーションの設定ファイルの db-kind プロパティーを設定すると、Quarkus は適切なタイプのデータベースドライバーを自動的に解決します。以下の手順は、データソースの db-kind プロパティーを設定する方法を示しています。
前提条件
- Quarkus Maven プロジェクトがあること。
手順
- Quarkus プロジェクトディレクトリーに移動します。
src/main/resources/application.propertiesファイルで、使用する データソースのタイプ と一致するように、db-kindプロパティーの値を設定します。以下の例では、データソースタイプにpostgresqlを使用しています。quarkus.datasource.db-kind=postgresql
quarkus.datasource.db-kind=postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. データベース認証情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションがデータベースへのアクセスに使用する認証情報を定義できます。データベースのアクセス認証情報の定義は任意となっています。アプリケーションのデータソースを設定する際に、この手順を省略できます。
前提条件
- Quarkus Maven プロジェクトがあること。
-
データソースの
db-kindプロパティーを設定していること。 - Quarkus アプリケーションが JVM モードになっていること。この前提条件は、Quarkus がネイティブモードでサポートしない JDBC ドライバーを使用する場合に該当します。
手順
- Quarkus プロジェクトディレクトリーに移動します。
src/main/resources/application.propertiesファイルで、アプリケーションがデータベースにアクセスするために使用するユーザー名と一致するように、quarkus.datasource.usernameプロパティーの値を設定します。quarkus.datasource.username=<username>
quarkus.datasource.username=<username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/resources/application.propertiesファイルで、アプリケーションがデータベースへのアクセスに使用するパスワードと一致するように、quarkus.datasource.passwordプロパティーの値を設定します。quarkus.datasource.password=<password>
quarkus.datasource.password=<password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. ビルトインデータベース向けの Quarkus ドライバーエクステンション リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Quarkus ビルトインデータベースと、アプリケーションをリレーショナルデータベースに接続するために使用できるエクステンションの概要を示しています。
| データベースビルトイン | db-kind | Agroal エクステンション | リアクティブエクステンション |
|---|---|---|---|
| DB2 |
|
|
|
| Derby |
|
| 該当なし |
| H2 |
|
| 該当なし |
| MariaDB |
|
|
|
| Microsoft SQL Server |
|
| 該当なし |
| MySQL |
|
|
|
| PostgreSQL |
|
|
|
H2 データベースおよび Derby データベースを組み込みモードで実行するように設定できます。H2 ドライバーおよび Derby ドライバーのエクステンションは、組み込みデータベースエンジンをネイティブ実行可能ファイルにコンパイルすることはサポートしません。
この表には、サポート対象アーティファクトおよびコミュニティーアーティファクトが含まれます。サポート対象 Maven アーティファクトの一覧は、「Red Hat build of Quarkus Component Details」 ページを参照してください。
ビルトインデータベースのいずれかを使用すると、JDBC ドライバーは以下の値に自動的に解決されます。
| データベース | JDBC ドライバー | XA ドライバー |
|---|---|---|
| DB2 |
|
|
| Derby |
|
|
| H2 |
|
|
| MariaDB |
|
|
| Microsoft SQL Server |
|
|
| MySQL |
|
|
| PostgreSQL |
|
|
H2 データベースおよび Derby データベースを組み込みモードで実行するように設定できます。H2 ドライバーおよび Derby ドライバーのエクステンションは、組み込みデータベースエンジンをネイティブ実行可能ファイルにコンパイルすることはサポートしません。