検索

第304章 SQL コンポーネント

download PDF

Camel バージョン 1.4 で利用可能

sql: コンポーネントを使用すると、JDBC クエリーを使用してデータベースを操作することができます。このコンポーネントと JDBC コンポーネントの相違点は、クエリーがエンドポイントのプロパティーであり、クエリーに渡されるパラメーターとしてメッセージペイロードを使用するためです。

このコンポーネントは、実際の SQL 処理に背後で spring-jdbc を使用します。

Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-sql</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

SQL コンポーネントは以下もサポートします。

  • Idempotent Consumer EIP パターンの JDBC ベースのリポジトリー。詳細は以下を参照してください。
  • Aggregator EIP パターンの JDBC ベースのリポジトリー。詳細は以下を参照してください。

304.1. URI 形式

警告: Camel 2.11 以降では、このコンポーネントからコンシューマー(例: from())およびプロデューサーエンドポイント(例: to())の両方を作成できます。以前のバージョンでは、プロデューサーとしてのみ動作できました。

INFO: このコンポーネントは、Transactional Client として使用できます。

SQL コンポーネントは、以下のエンドポイント URI 表記を使用します。

sql:select * from table where id=# order by name[?options]

Camel 2.11 以降では、以下のように :'#name_of_the_parameter' スタイルを使用すると名前付きパラメーターを使用できます。

sql:select * from table where id=:#myId order by name[?options]

名前付きパラメーターを使用する場合、Camel は指定の優先順位で名前を検索します。
1. メッセージヘッダーから java.util.Map
2. からメッセージボディーから名前を検索します。

名前付きパラメーターを解決できない場合、例外が発生します。

Camel 2.14 以降 では、以下のように Simple 式をパラメーターとして使用できます。

sql:select * from table where id=:#${property.myId} order by name[?options]

SQL クエリーのパラメーターを示す標準の ? 記号は、エンドポイントのオプションを指定するために ? 記号が使用されるため、# 記号に置き換えられます。? 記号の置換はエンドポイントベースに設定できます。

Camel 2.17 以降では、以下のように SQL クエリーをクラスパスまたはファイルシステムのファイルに外部化できます。

sql:classpath:sql/myquery.sql[?options]

myquery.sql ファイルはクラスパスにあり、プレーンテキストです。

-- this is a comment
select *
from table
where
  id = :#${property.myId}
order by
  name

ファイルで複数行を使用し、必要に応じて SQL をフォーマットできます。また、- dash 行などのコメントも使用します。

URI にクエリーオプションを追加するには、?option=value&option=value&…​

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.