ステップバイステップで学ぶ

初めてのWebアプリケーション・サーバ




第6回 EJBの作成とデバッグ

 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 列エディター

 同様にして、addressnamephoneについても編集します。

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を配置する際に、新たにマッピング作業を繰り返す必要がありません。

3.EJBデバックを行う

初めてのWebアプリケーション・サーバ(第6回)
  1.EJBツールでEJBを作成
2.オブジェクト・モデルとスキーマのマッピング
  3.EJBデバッグを行う


連載記事一覧





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間