第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;

Variables

表20.1「SQL 変数」 に、JoSQL を使用する際にアクセス可能な組み込み変数の一覧を示します。

表20.1 SQL 変数
名前説明

exchange

org.apache.camel.Exchange

現在のエクスチェンジ

in

org.apache.camel.Message

IN メッセージ

out

org.apache.camel.Message

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>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.