データベースアダプタ用 OTD の開発

DB2 Connect OTD の作成

データベース OTD ウィザードは、外部データ発信元に接続し、対応するオブジェクト型定義を作成することによって OTD を生成します。OTD ウィザードでは、テーブルとストアドプロシージャーまたは事前定義文の任意の組み合わせに基づいて OTD を作成できます。外部データ発信元のテーブルに基づいて、フィールドノードが OTD に追加されます。Java メソッドノードおよびパラメータノードは、適切な JDBC 機能を提供するために追加されます。Java メソッドの詳細については、JDBC の開発者向けリファレンスを参照してください。


注 –

データベース OTD はメッセージ可能ではありません。メッセージ可能 OTD の詳細については、『Sun Enterprise Service Bus User’s Guide』を参照してください。


DB2 Connect アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。

ウィザードタイプの選択

新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。

ProcedureOracle データベース OTD ウィザードを選択する

  1. プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。

  2. 「OTD ウィザードの選択」ウィンドウで、「DB2 Connect データベース」を選択し、「次へ」へクリックします (次の図を参照)。

    図 1–7 OTD ウィザードの選択

    ウィザードの選択

データベースへの接続

「接続情報」フレーム内で、DB2 Connect の接続情報を入力します。

Procedureデータベースに接続する

  1. ドロップダウンリストを使用して「接続タイプ」を選択します (次の図を参照)。表示される接続情報フィールドは、選択するタイプ (タイプ 2 または タイプ 4 のどちらのコネクタを選択するか) によって異なります。

  2. 使用するデータベースに関する適切な接続情報 (接続タイプによって異なる) を指定します。指定する項目は次のとおりです。

    データベースへの接続

    タイプ 2 の接続の場合 (前の図を参照)

    • データベース」 - データベースインスタンスの名前。

    • ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。

    • パスワード」 - データベースへのアクセスに使用するパスワード 。

      DB2 Connect タイプ 4

    タイプ 4 の接続の場合 (前の図を参照)

    • ホスト名」 - DB2 Connect が存在するサーバー。

    • ポート」 - DB2 Connect のポート番号。

    • データベース」 - Windows または UNIX 上で DB2 が実行しているデータベースインスタンスの名前。z/OS または AS/400 上で実行している DB2 のロケータの名前。

    • ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。

    • パスワード」 - データベースへのアクセスに使用するパスワード 。

  3. 次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。

データベースオブジェクトの選択

OTD に含める DB2 Connect オブジェクトのタイプを選択します。

Procedureデータベースオブジェクトを選択する

  1. データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブルビュー手続き事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。


    注 –

    ビューは読み取り専用であり、情報提供のみを目的としています。


    データベースオブジェクトの選択
  2. 次へ」をクリックして続行します。「テーブル/ビュー/エイリアスの選択」ウィンドウが表示されます。

テーブル/ビュー/エイリアスの選択

OTD で必要なテーブルまたはビューのタイプを選択します。

Procedureテーブル/ビュー/エイリアスを選択する

  1. テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。

    テーブル/ビューの選択
  2. 「テーブルの追加」ウィンドウで、検索に使用する条件のタイプを選択します。「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択できます。検索にシステムテーブルを含める場合は、「システムテーブルを含む」チェックボックスにチェックマークを付けます。

  3. テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします (次の図を参照)。テーブル/ビュー名を検索する場合は、テーブル名を入力します。ワイルドカード文字の「?」および「*」をテーブル/ビュー名の検索に使用すると、検索能力を高めることができます。たとえば、「AB?CD」や「AB*CD」のように使用します。

  4. 目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択」ボックスの一覧に追加されます (次の図を参照)。

    テーブルの追加
  5. 選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。

  6. 選択されたテーブル/ビュー/エイリアス」ウィンドウで「変更」をクリックした場合は、「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します (次の図を参照)。

    テーブル/ビューの列
  7. データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。通常は、精度/長さとスケールは変更しないでください。テーブルの選択が完了したら、「了解」をクリックします (次の図を参照)。

    テーブル/ビューの列: 詳細
  8. 事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。

手続きの選択

OTD に必要な手続きを選択します。

Procedure手続きを選択する

  1. 手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。

    手続きの選択
  2. 手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。

  3. 表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。

    手続きの追加
  4. 選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。次の図を参照してください。

    手続きパラメータ
  5. データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。

  6. OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。

  7. 生成する Resultset ノードのタイプを追加するには、「追加」をクリックします (次の図を参照)。

    ResultSet の編集

    データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。

    「実行時」モード 

    「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。 

    「アシスタンス」モード 

    「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。 

    「手動で」モード 

    「手動で」モードでは、もっとも柔軟な方法で ResultSet ノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。 


    SELECT A, B, 3*C FROM table T

    これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。 

    データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。 

  8. 手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。

事前定義文の追加

事前定義文 OTD は、コンパイルされた SQL 文を表します。OTD の各フィールドは、ユーザーが指定する必要がある入力値に対応します。事前定義文を使用して、挿入、更新、削除、およびクエリーの操作を実行できます。事前定義文では、疑問符 (?) を入力のプレースホルダとして使用します。たとえば、「insert into EMP_TAB (Age, Name, Dept No) values (?, ?, ?)」のようになります。

Procedure事前定義文を追加する

事前定義文を実行するには、入力パラメータを設定して executeUpdate() を呼び出し、必要に応じて入力値を指定します。


注 –

事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用します。next() メソッドによるループで ResultSet を処理できます。


  1. 事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。

    事前定義ステートメント
  2. 事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします (次の図を参照)。

    事前定義ステートメントの追加
  3. 事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。


    注 –

    2 つ以上のテーブルを使用する事前定義文を実行する場合、複数のテーブルに同じ列名があるときは、事前定義文にテーブル名修飾子を入れて OTD を構築します。


  4. 文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。次の図を参照してください。

    事前定義文パラメータ
  5. ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われます。「了解」をクリックします (次の図を参照)。


    注 –

    OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。


    ResultSet 列
  6. 「事前定義ステートメントの追加」ウィンドウで、「了解」をクリックします。

OTD 名の指定

Java CAPS IDE に表示する OTD の名前を指定します。

ProcedureOTD 名を指定する

  1. OTD の名前を入力します。

    OTD には、選択されたテーブルと、生成されたクラスのパッケージ名が含まれます (次の図を参照)。

    「OTD 名の指定」画面
  2. 次へ」をクリックして続行します。「選択内容の確認」ウィンドウが表示されます。

選択内容の確認

新しい OTD に関する選択内容を確認します。

ProcedureOTD の選択内容を確認する

  1. OTD の概要を表示します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。

  2. OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します (次の図を参照)。

    図 1–8 データベースウィザード - 概要

    ウィザード - 概要

    結果の OTD が Java CAPS IDE のキャンバスに表示されます。