第20章 JoSQL
概要
JoSQL (SQL for Java オブジェクト) 言語を使用すると、Apache Camel で判定式および表現式を評価できます。JoSQL は SQL のようなクエリー構文を使用して、インメモリーの Java オブジェクトに対してデータ抽出やソートを実行できます。しかし、JoSQL はデータベースでは ありません。JoSQL 構文では、各 Java オブジェクトのインスタンスをテーブルの行とみなし、各オブジェクトのメソッドを列とみなして操作します。この構文を使用すると、Java オブジェクトのコレクションからデータを抽出および再設定する強力なステートメントを作成できます。詳細は http://josql.sourceforge.net/ を参照してください。
JoSQL モジュールの追加
ルートで JoSQL を使用するには、例20.1「camel-josql 依存関係の追加」 で示したように、camel-josql
の依存関係をプロジェクトに追加する必要があります。
例20.1 camel-josql 依存関係の追加
<!-- Maven POM File --> ... <dependencies> ... <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-josql</artifactId> <version>${camel-version}</version> </dependency> ... </dependencies>
静的インポート
アプリケーションコードで sql()
static メソッドを使用するには、以下の import ステートメントを Java ソースファイルに追加します。
import static org.apache.camel.builder.sql.SqlBuilder.sql;
変数
表20.1「JoSQL 変数」 に、JoSQL を使用する際にアクセス可能な組み込み変数の一覧を示します。
名前 | 型 | 説明 |
---|---|---|
|
| 現在のエクスチェンジ |
|
| IN メッセージ |
|
| OUT メッセージ |
プロパティー |
| キーが propertyであるエクスチェンジプロパティー |
header |
| キーが header である IN メッセージヘッダー |
variable |
| キーが variable である変数 |
例
例20.2「JoSQL を使用したルート」 は、JoSQL を使用したルートを示しています。
例20.2 JoSQL を使用したルート
<camelContext> <route> <from uri="direct:start"/> <setBody> <language language="sql">select * from MyType</language> </setBody> <to uri="seda:regularQueue"/> </route> </camelContext>