閉じる

Spring Data R2DBC

1.1.3

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 をアプリケーションのエントリポイント (Qiita) として提供できます。

データベースドライバーを選択して開始し、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 Initializr

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

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

ドキュメント

Spring プロジェクト別に用意されています。プロジェクトの機能を使用する方法と、それを使用して達成できることを詳細に説明しています。
1.1.3 CURRENT GA リファレンスドキュメント API ドキュメント
1.2 SNAPSHOT
1.2 0-M2 PRE リファレンスドキュメント API ドキュメント
1.1.4 SNAPSHOT

例を試してみる:

Unofficial Translation by spring.pleiades.io. See the original content.