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

Oracle OTD の作成

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

ウィザードタイプの選択

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

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

  1. プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。

  2. 「新規オブジェクト型定義ウィザード」ウィンドウで、「Oracle データベース」を選択し、「次へ」をクリックします 次の図を参照してください。

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

    OTD ウィザードの選択

データベースへの接続

「接続情報」フレーム内で、Oracle データベースの接続情報を入力します。

データベース接続情報

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

  1. 使用するデータベースに関する適切な接続情報を指定します。指定する項目は次のとおりです。

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

    • ポート ID」 - Oracle のポート番号。

    • SID」 - Oracle インスタンスの名前 (データベース名と同じ)。

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

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

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

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

OTD に含める Oracle データベースオブジェクトのタイプを選択します。

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

  1. データベースオブジェクトの選択」ダイアログボックス (次の図) で、このサンプルの場合は「テーブル/ビュー/エイリアス」を選択します。データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブルビュー手続き事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。


    注 –

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


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

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

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


注 –

現在のリリースの Oracle アダプタではエイリアスはサポートされません。


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

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

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

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

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

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

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

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

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

手続きの選択

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

Procedure手続きを選択する

  1. 手続きの選択と結果セットおよびパラメータ情報の指定」ダイアログボックスで、「追加」をクリックします。

    手続きの選択と結果セットおよびパラメータ情報の指定
  2. 手続きの選択」ダイアログボックスで、手続きの名前 (大文字と小文字が区別される) を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字を使用できます。

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

    手続きの追加
  4. 手続きの選択と結果セットおよびパラメータ情報の指定」 ダイアログボックスで、「編集」をクリックし、必要に応じて、選択された手続きに変更を加えます (次の図を参照)。

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

  6. Oracle OTD の ResultSet をウィザードに生成させるには、「ResultSet の編集」をクリックします。

  7. 生成する ResultSet のタイプを選択し、「追加」をクリックします。

    ResultSet の編集

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

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

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

    • 「手動で」モード - 「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 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 (?, ?, ?)」のようになります。

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

Procedure事前定義文を追加する


注 –

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


  1. 事前定義文の追加」ダイアログボックスで、「追加」をクリックします。

    図 1–27 事前定義ステートメント

    事前定義ステートメント

  2. 事前定義文の名前を入力します。次に、「SQL ステートメント」ダイアログボックスで SQL 文クリックするか、または「ステートメントビルダー」ボタンをクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックします。この文には、先ほど入力した名前を付けます。この名前がノードとして OTD に表示されます (次の図を参照)。「了解」をクリックします。

    図 1–28 事前定義 SQL ステートメント

    事前定義 SQL ステートメント

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

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


    注 –

    事前定義文を保存したら、事前定義文パラメータの ResultSet 列の名前が、特殊文字 (角括弧など) を含まない有効な英数字文字列であることを確認してください。


    図 1–29 事前定義ステートメントパラメータの編集

    事前定義ステートメントパラメータの編集

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


    注 –

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


    図 1–30 ResultSet 列

    ResultSet 列

  6. 「事前定義ステートメントの追加」ダイアログボックスで、「了解」をクリックします。

OTD 名の指定

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

ProcedureOTD 名を指定する

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

    図 1–31 OTD 名の指定

    OTD 名の指定

  2. 次へ」をクリックします。

選択内容の確認

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

ProcedureOTD の選択内容を確認する

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

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

    結果の OTD が Java CAPS IDE に表示されます。

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

    データベースウィザード - 概要