マッパーでRDBからデータを得るには

TableDB関数

TableDB関数は、マッピング時に使用できるマッパー関数で、SQL文を実行し、データベースのテーブルから指定のキーで検索を行って、その結果を値として得ることができます。マッピングウィンドウ内にコンポーネントを配置し、SQL文を設定します。

TableDB関数でデータベースを検索する

1. Mapperコンポーネントを含むフローを作成し、入出力のファイルパスやストリーム定義を設定する

6-129-01.png

2. マッピングウィンドウを表示し、パレットの「変換」タブからTableDB関数(「RDB のテーブルを使って、キーから値に変換」)を配置する

6-129-02.png 

HINT
ここでは、Mapperコンポーネントへの入力ストリームとして、FileGetコンポーネントを配置し、「商品番号」のフィールドに4行の商品番号を含むCSVファイルを指定しています。

 

3. TableDB関数コンポーネントが選択されてい る状態で、インスペクタの「コネクション名」 プロパティで接続先のコネクションを選択する

6-129-03.png

4. TableDB関数コンポーネントアイコンをダブルクリックすると、SQLビルダーが表示されるので、テーブルを選択し、取得したいフィールドを指定して、「OK」をクリックする

6-129-04.png

5. SQL文を修正するため、インスペクタの「SQL文」プロパティの値欄で「...」をクリックする

6-129-05.png 

6. 「SQL文プロパティの編集」ダイアログで、マッピングの内容に合わせてSQL文を編集する

6-129-06.png

HINT
TableDB関数でのSQL文の設定
SQLを手動で編集する場合は、JavaのPreparedStatementで使用できる「?」を使ってキーを指定します。たとえば、「select field2 from tablename where field1 =?」とSQL文に指定した場合は、TableDBへの入力が ? の部分に置き換わり検索条件が指定されます。キーが2つ以上ある場合は「select field2 from table name where field1=? and field3=?」のように指定します。この場合TableDBへの入力は2つ必要になり、それぞれが ? の部分に置き換わります。

 

7. SQL文の設定内容によって、コネクタの数が変更されるので、それに合わせてマッピングを設定する

6-129-07.png

フローを実行すると、指定したフィールドの値によってデータベースが検索され、該当するデータが取り出されます。上の例では、「商品」テーブルから、指定した商品番号を持つデータの商品番号と商品名が検索され、出力されます。

6-129-08.png

CAUTION
TableDB関数では、SQLビルダーで定義したパラメーター名、順序、データ型は使用されないので注意してください。特に、データ型に関しては、SQLビルダーで「SELECTテスト」を行うときは定義したパラメーターのデータ型が使用されますが、フローで実行するときは、実行時にパラメーターに入力されたデータのデータ型が使用されます。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
  • RDB
  • Mapper
  • TableDB
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する