ステップバイステップで学ぶ
初めてのWebアプリケーション・サーバ
|
2.オブジェクト・モデルとスキーマのマッピング |
CMPエンティティーBeanを実際にサーバーに配置するためには、CMPエンティティーBeanとデータベース・スキーマのマッピングを行わなければなりません。簡単にいうと、個々のCMPフィールドがデータベース表のどの列と対応しているのかを定義する作業です。ここでもEJBツールを使って自動的に作業を進めます。
EJBグループTestEJBを選択し、メニューから[EJB]→[Add]→[Schema and Map from EJB Group]を選択します。これで自動的にCMPフィールドとデータベース表の列がマッピングされました。[EJB]→[Open
to]→[Schema Maps]を選択するとMap Browser(マップ・ブラウザー)が開き、TestEJBTestEJBという名前のデータ・ストア・マップが作られたのが分かります。
|
画面7 新規プロジェクトデータ・ストア・マップ |
出来上がったデータ・ストア・マップはまだ実際にはプロジェクトに保管されていません。そこで、TestEJBTestEJBをプロジェクトに保管します。TestEJBTestEJBを選択してから、[Datastore_Maps]→[Save
Datastore Map]を選択してダイアログを開き、次の値を入力します。
Project
|
Test |
Package
|
test.ejb |
Class: |
TestEJBTestEJBMap |
最後に[終了]ボタンをクリックします。
|
画面8 データ・ストア・マップの保管 |
次に、データベース・スキーマを編集します。ワークベンチのメニューから[EJB]→[Open to]→[Database schemas]を選択するとSchema
Browser(スキーマ・ブラウザー)が開き、データ・ストア・マップと同時にTestEJBスキーマが作られていたのが分かります。このスキーマを「TestEJBスキーマ→Customer表→accountNo列」のようにたどっていくと下側のペインにこの列の属性情報が表示されます。この情報からEJBツールがjava.lang.String型を自動的にVARCHAR(30)の列に変換したことが分かります。実際に使用するデータベース表の列はVARCHAR(30)だけとは限りません。ここでは列の属性を修正してみたいと思います。
|
画面9 スキーマ・ブラウザー |
まず、accoutNo列を選択して、[Columns]→[Edit Column]を選択します。現れたColumn Editor(列エディター)で次のように入力します。
Physical
name: |
ACCNTNO |
Type
|
CHAR |
Converter |
VapTrimStringConverter |
Length |
10 |
[OK]ボタンをクリックするとスキーマ・ブラウザーの列情報が変更されたのが分かります。
|
画面10 列エディター |
同様にして、address、name、phoneについても編集します。
address
物理名
|
ADDRESS |
型
|
VARCHAR |
コンバーター |
VapConverter |
長さ |
1000 |
name
物理名
|
NAME |
型 |
VARCHAR |
コンバーター |
VapConverter |
長さ |
100 |
phone
物理名
|
PHONE |
型 |
VARCHAR |
コンバーター |
VapConverter |
長さ |
20 |
すべての列の編集が完了したらTestEJBスキーマをプロジェクトに保管します。TestEJBスキーマを選択してから、[Schemas]→[Save
Schema]を選択し、ダイアログを開きます。次の値を入力して[Finish]ボタンをクリックします。
Project
|
Test |
Package
|
test.ejb |
Class
name |
TestEJBSchema |
|
画面11 スキーマの保管 |
以上でオブジェクト・モデルとスキーマのマッピングが完了しました。EJBツールは、このマッピング結果をもとに配置コードを生成することができるため、WAS上にEJBを配置する際に、新たにマッピング作業を繰り返す必要がありません。