閉じる

Spring Data R2DBC

1.2.1

より大きな Spring Data ファミリーの一部である Spring Data R2DBC を使用すると、R2DBC ベースのリポジトリを簡単に実装できます。R2DBC は Reactive Relational Database Connectivity: GitHub (英語) の略で、リアクティブドライバーを使用してリレーショナルデータベースを統合するインキュベーターです。Spring Data R2DBC は、おなじみの Spring 抽象化と R2DBC のリポジトリサポートを適用します。これにより、リアクティブアプリケーションスタックでリレーショナルデータアクセステクノロジーを使用する Spring を利用したアプリケーションの構築が容易になります。

Spring Data R2DBC は、概念的に簡単であることを目指しています。これを実現するために、ORM フレームワークのキャッシュ、遅延読み込み、ライトビハインド、またはその他の多くの機能を提供していません。これにより、Spring Data R2DBC は、シンプルで限定された、強固なオブジェクトマッパーになります。

Spring Data R2DBC を使用すると、関数アプローチでデータベースと対話し、アプリケーションのエントリポイントとして DatabaseClient を提供できます。

データベースドライバーを選択して開始し、DatabaseClient インスタンスを作成します。

PostgreSQL の例
PostgresqlConnectionFactory connectionFactory = new PostgresqlConnectionFactory(PostgresqlConnectionConfiguration.builder()
		.host(…)
		.database(…)
		.username(…)
		.password(…).build());

DatabaseClient client = DatabaseClient.create(connectionFactory);

Mono<Integer> affectedRows = client.execute()
        .sql("UPDATE person SET name = 'Joe'")
        .fetch().rowsUpdated();

Flux<Person> all = client.execute()
        .sql("SELECT id, name FROM person")
        .as(Person.class)
        .fetch().all();

クライアント API は、次の機能を提供します。

  • 汎用 SQL の実行と更新カウント / 行の結果の消費。

  • ページングと順序付けを行う汎用 SELECT

  • ページングおよび順序付けされたマッピングされたオブジェクトの SELECT

  • パラメーターバインディングを使用する汎用 INSERT

  • マッピングされたオブジェクトの INSERT

  • ネイティブ構文を使用したパラメーターバインディング。

  • 結果の消費 : 更新カウント、マッピングなし(Map<String, Object>)、エンティティへのマッピング、抽出機能。

  • @Query アノテーション付きメソッドを使用したリアクティブリポジトリ。

  • トランザクション管理。

Spring Boot 構成

Spring Initializr

プロジェクトのクイックスタート

Spring Initializr (英語) を使用してアプリケーションをブートストラップします。

ドキュメント

Spring プロジェクト別に用意されています。プロジェクトの機能を使用する方法と、それを使用して達成できることを詳細に説明しています。
1.2.1 CURRENT GA リファレンスドキュメント API ドキュメント
1.3.0-SNAPSHOT SNAPSHOT
1.2.2-SNAPSHOT SNAPSHOT
1.1.6.BUILD-SNAPSHOT SNAPSHOT
1.1.5.RELEASE GA リファレンスドキュメント API ドキュメント

例を試してみる: