課題 2.5: 自動キー生成の使用

始める前に、『課題 2.4: ナビゲーション規則の使用』を完了しておく必要があります。

直前の課題では、新しい案内広告のためにユーザーが固有の ID 番号を入力したことを確認するためのナビゲーション規則をセットアップしました。 ユーザーは番号を推測することなどしたくないので、 この処理はユーザーのフラストレーションを引き起こします。

もちろん、それぞれのレコードに固有 ID 番号を指定するための最良の方法は、 データベースに、各レコードに固有の番号を割り当てさせることです。 この課題では、自動キー生成をセットアップして、 データベースのそれぞれのレコードに新規番号を付与することを、このサイトに自動的に行わせます。

自動キー生成は複雑なトピックですが、簡単に言えば、 キー生成のためにデータベースに特別なテーブルが予約されていると、 データベースは新規キーを選択できるということです。 このテーブルには、未使用キーのリストを持つ列 (増分 (Incrementor) 列) と 1 から始まる番号順のリストを持つ別の列 (識別 (Identity) 列) が必要です。 データベースに新規キーが必要になると、識別 (Identity) 列で 1 を持つ行からキーを取り込み、 次に、次回に使用できる新規キーを取得します。 『自動キー生成についてさらに学習したい方に』を参照してください。

自動キー生成のセットアップ

デモを見る

このチュートリアルで提供されたサンプル・データベースは、KEYS という名前のキー生成テーブルを持っています。 上述した 2 つの列は、各新規レコードに対して新規 ID 番号を提供します。 以下の手順によって、create_record 関連レコードをセットアップし、KEYS テーブルからその ID 番号を取得します。

  1. 「プロジェクト・エクスプローラー」ビューで「new_record.jsp」ページをダブルクリックする。
  2. 「ページ・データ」ビューで、create_record 関連レコードをダブルクリックする。 「関連レコードの構成」ウィンドウが開きます。
  3. キー生成」タブをクリックする。
  4. 自動キー生成の使用」をクリックする。
  5. W5SAMPLE.KEYS」テーブルをクリックする。
  6. ID 列の選択」フィールドで、「KEY_ID」をクリックする。
  7. 増分列の選択」フィールドで、「NEXT_KEY」をクリックする。

    広告の ID にはキーは 1 つだけ必要なので、「一度に取り出すキー数」を設定値 1 のままにしておきます。複数のキーが必要な場合は、 この設定ですべてのキーを一度にデータベースに選択させることができます。

    「データ・オブジェクトの構成」ウィンドウは下図のようになるはずです。

    「データ・オブジェクトの構成」ウィンドウ

  8. 閉じる」をクリックする。

    これで、各新規レコードに ID フィールドが自動的に生成されます。 ここで、 ユーザーが値を入力できないように、ID 入力フィールドを除去する必要があります。

  9. Id: テキストをクリックして、カーソルを入力フォーム・テーブルの先頭行に置く。
  10. テーブル」>「行の削除」と順にクリックする。
  11. このページを保管する。

オプションとして、どんなキーが生成されたかを知りたいのであれば、 行を削除する代わりに、その ID 番号の入力コンポーネントを削除し、 それを create_record の ID 列にバインドされている出力コンポーネントで置換することもできます。 こうすると、自動生成キーはフォームの上部に表示されますが、 ユーザーはこれを変更することはできません。

完了したチュートリアルの実行

ユーザーの Web アプリケーションを公開する準備が完了したならば、 ユーザーがインターネットでその Web サイトにアクセスできるように、それをホスティングするサーバーが必要になります。 ただし、Web サイトをテストするために、WebSphere Application Server を使用して、テスト目的でサーバーをシミュレートすることができます。 Web サイトをテストする方法については、 『課題 1.3: Web サイトのテスト』を参照してください。

おめでとうございます!

チュートリアル「JavaServer Faces を使用して動的情報を Web ページに表示する」チュートリアルの学習は終了しました。 このチュートリアルの『要約』に進んでください。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.