これでプロジェクトの準備ができたので、GSDB データベースに接続してコードの生成が行えます。
目標の 1 つは、INVENTORY_LEVELS 表にアクセスする際に使用できる、この表を表す Bean を作成することです。他の目標としては、SQL ステートメントを実行してこの表にアクセスするメソッドを宣言するインターフェースを作成することです。
INVENTORY_LEVELS 表からコードを生成するには、以下のようにします。
- デフォルトでは、生成される Bean のフィールドは対応する表列の名前が小文字になったものとなります。例えば、
列の名前が INVENTORY_YEAR である場合、pureQuery では対応するフィールドの名前は inventory_year になります。
ただし、フィールド名にキャメル・ケースを使用して下線を除去することもできます。
この場合、フィールド名 inventory_year は inventoryYear となります。生成された Bean のフィールドの名前をキャメル・ケースにするオプションを選択してください。
- 「ウィンドウ」->「設定」を選択します。
- 「設定」ウィンドウで、「データ管理」->「SQL 開発」->「pureQuery」を選択します。
- 「pureQuery」ページで「Java 名のデフォルトの生成時にキャメル・ケースを使用」オプションを選択して
「OK」をクリックします。
- 「データ・ソース・エクスプローラー」で、と展開します。
- INVENTORY_LEVELS 表を右クリックし、「pureQuery コードの生成」を選択します。
「表から pureQuery コードを生成」ウィザードが開きます。
- ウィザードの「pureQuery コードの生成」ページのフィールドに、次の表に示されている設定値を指定します。
フィールド |
設定値 |
ソース・フォルダー |
デフォルト値のままにしておきます。このコントロールを使用して、pureQuery が生成するコードを保存するプロジェクトと、そのプロジェクトに含まれるフォルダーを指定します。「パッケージ・エクスプローラー」には Java プロジェクトが 1 つしかないので、そのプロジェクトの「src」フォルダーがデフォルト値です。 |
パッケージ |
次の名前を入力します。com.myCompany.pureQuery.test |
名前 |
デフォルト値のままにしておきます。これは pureQuery コードが表にアクセスするために使用する Bean の名前です。 |
スーパークラス |
デフォルト値のままにしておきます。このコントロールを使用して、生成した Bean に属性を継承させるすべてのクラスを指定します。 |
表にアノテーション・メソッド・インターフェースを生成 |
チェック・ボックスを選択されたままにして、この後にウィザードで選択する各 SQL ステートメントに 1 つのメソッドを含むインターフェースを生成させるようにします。 |
パッケージ |
デフォルト値のままにしておきます。これは、Bean に選択したパッケージと同じものです。 |
インターフェース名 |
デフォルト値のままにしておきます。これは、Bean の名前に Data という語を追加したものです。 |
詳細設定 |
デフォルト値のままにしておきます。このコントロールに関しては、同じ名前のインターフェースがすでに存在する場合しか問題になりません。 |
「次へ」をクリックして、ウィザードの 2 ページ目に移動します。
- ウィザードの「pureQuery テスト・コードの生成」ページのフィールドに、次の表に示されている設定値を指定します。
このページを使用して、pureQuery が表から生成した他のコードをテストするために使用できるクラスの生成を指定します。
フィールド |
設定値 |
ソース・フォルダー |
デフォルト値のままにしておきます。このコントロールでは、生成したコードを保存するプロジェクト内の位置を指定します。 |
パッケージ |
デフォルト値のままにしておきます。これは、この前のページで入力した名前です。 |
表にアノテーション・メソッド・インターフェース用のテスト・クラスを生成 |
このチェック・ボックスを選択して、ウィザードの前のページで名前を付けたインターフェースに、pureQuery がテスト・クラスを生成するようにします。デフォルトでは、pureQuery はインターフェースの名前に Test を追加した名前をテスト・クラスに付けます。これは、デフォルトの名前のままにしておきます。 |
インライン・スタイルのテスト・クラスの生成 |
このチェック・ボックスは未選択のままにしておきます。このチェック・ボックスを選択した場合、pureQuery はテスト・クラスを生成し、SQL ステートメントをインターフェースではなくこのテスト・クラス自体の中に置きます。
しかし、このチュートリアルの目的に合わせて、アプリケーションでインライン・メソッドではなくアノテーション・メソッドを使用します。 |
テスト・スタイル |
デフォルトの選択のままにしておきます。ワークベンチを
使用して Java アプリケーションを JUnit でテストすることもできますが、
このチュートリアルでは簡単なテストを使用します。 |
接続情報 |
デフォルトの選択のままにしておきます。テスト・クラスを実行する際にテスト・クラスを GSDB データベースに対して認証する 1 つの方法は、テスト・クラス内にハードコーディングされた接続 URL とユーザー ID を使用することです。デフォルトでは、テスト・クラスの実行時にユーザー ID とパスワードを指定する方法が使用されます。 |
「次へ」をクリックして、ウィザードの 3 ページ目に移動します。
- ウィザードの「Bean フィールド」ページのフィールドに、次の表に示されている設定値を指定します。 ウィザードの「Bean フィールド」ページでは、pureQuery が InventoryLevels Bean のフィールドを生成する方法を指定します。
フィールド |
設定値 |
Bean フィールドの有効範囲の選択 |
デフォルトの選択のままにしておきます。pureQuery は PUBLIC 有効範囲を持つフィールドを作成できますが、ベスト・プラクティスはフィールドを protected にしてそれらの値を get() または set() メソッドを使用して変更することです。 |
列を Bean フィールドにマップ |
フィールドの値はデフォルトの名前のままにしておきます。 |
「次へ」をクリックして、ウィザードの 4 ページ目に移動します。
- 「SQL ステートメント」ページで、pureQuery が生成するステートメントを指定できます。そのようにして、インターフェースに含めるメソッドの数とタイプを指定します。 「以下に指定された SQL ステートメントの生成」を選択し、MERGE ステートメントに関する 2 つのチェック・ボックスを選択解除します。
- 「完了」をクリックします。
以下の変更が Java プロジェクトに対して行われます。
図 1. pureQuery が生成したクラスを編集する