この演習では、INVENTORY_LEVELS 表の QUANTITY_SHIPPED 列の値を返すメソッドを作成します。
pureQuery が生成する SQL ステートメントはどれも有用ですが、作成するアプリケーションに合わせたステートメントが必要になる場合もあります。例えば、ある年のある月に出荷されたある製品の数量を確認する SELECT ステートメントがアプリケーションで必要となると想定します。そのアプリケーションは出荷された数量以外の値は必要としません。
pureQuery では容易に、この新規メソッドの宣言をインターフェースに追加することができ、その後 PureQuery は自動的にインプリメンテーション・クラスを再生成してメソッドを実装します。
新規メソッドをインターフェースに追加するには、以下のようにします。
- InventoryLevelsData.java タブに移動します。
- 2 番目の getInventoryLevels() メソッド (個々のフィールドをパラメーターとして取るもの) の下に、ブランク行を数行追加してから以下の行を入力します。
// Select QUANTITY_SHIPPED by parameters
@Select(sql = "SELECT FROM ")
ヒント: エディターにエラー・マーカーが表示されても気にしないでください。メソッドの宣言が完了すれば、表示されなくなります。
- GSDB スキーマをコードに追加します。
- 入力したコードで、2 番目の二重引用符の直前をクリックしてカーソルをそこに配置します。それから、Ctrl キーを押しながら、スペース・バーを押します。 現在行のすぐ下に小さなウィンドウが表示されます。このウィンドウは、そのステートメントに推奨される SQL 要素をリストします。
- その小さなウィンドウを、GSDB データベースのスキーマのリストが表示されるまでスクロールダウンし、GOSALES スキーマをダブルクリックします。
- 次のようにして、INVENTORY_LEVELS 表をコードに追加します。
- そのコード内で、スキーマの後ろにピリオドを入力し、再度 Ctrl とスペースを同時に押すと、そのスキーマにある表をリストした小さなウィンドウが表示されます。
- 下矢印を使用して INVENTORY_LEVELS 表まで移動し、Enter を押します。
- SQL ステートメントを完成させます。 QUANTITY_SHIPPED 列の値を選択したいと想定します。列の名前をミスタイプすることなく素早く入力したいとも思うでしょう。
- SELECT キーワードの後ろの 2 つのスペースの間をクリックしてカーソルを置きます。Ctrl キーを押しながら、スペース・バーを押します。 現在行の下に別のウィンドウが表示されます。
このウィンドウには、INVENTORY_LEVELS 表の列のリストが表示されます。
- 下矢印キーを押して QUANTITY_SHIPPED 列まで移動し、Enter を押します。
- WHERE 節を書き込み、以前の SELECT ステートメントのように、4 つの主キー列を含めてください。
- SQL ステートメントのフォーマットを設定して、画面に収まるようにします。 前の手順では、ステートメントを書き込む間に右にかなりスクロールしてしまい、残りのコードが表示されていないはずです。
SELECT ステートメントを確認するときに常にかなりの量を右にスクロールしなければならないというわけではありません。SQL のフォーマットを設定するには、以下のようにします。
- クリックして、ステートメントにカーソルを置きます。ステートメントを右クリックして、を選択します。
- 左端までスクロールして戻ります。SQL ステートメントが複数行にきれいにフォーマット設定されていることに注意してください。
- QUANTITY_SHIPPED の値を整数で返す、個々のフィールドをパラメーターとするメソッドを書きます。
int getQuantityShipped(short inventoryYear, short inventoryMonth,
int warehouseBranchCode, int productNumber);
- SELECT ステートメントをテストします。 最初に SELECT ステートメントをテストせずに、メソッドを書きました。pureQuery では、Java エディターからテストを行います。
ステートメントをテストするには、ステートメントをクリックしてカーソルを置き、ステートメントを右クリックしてを選択します。
ステートメントが WHERE 節でパラメーター・マーカーを使用しているので、pureQuery に使用する値を指示する必要があります。
「ホスト変数値の指定」ウィンドウが開きます。
- 「ホスト変数値の指定」ウィンドウで、以下の値を入力してください。
「SQL の結果」ビューが開きます。
- 「SQL の結果」ビューで、最初の行を選択し「結果 1」タブを選択して結果を表示します。
「結果」ビューから SELECT ステートメントがエラーなしで実行されたことを確認できます。
インターフェースを保存するとき、pureQuery は自動的に InventoryLevels_DataImpl.java ファイルを再生成し、新しいメソッドを実装するようにします。