ワークベンチを使用して、Java コードから SQL ステートメントを抽出し、SQL ステートメントから pureQueryXML ファイルを作成して、SQL ステートメントをデータベースにバインドします。
このチュートリアルでは、これまでに、アプリケーションを実行して SQL ステートメントを取り込むことで pureQueryXML ファイルを作成しました。アプリケーションの SQL ステートメントを含む pureQueryXML ファイルを作成するもう 1 つの方法は、アプリケーションのソース・コードから SQL を抽出する方法です。ワークベンチの「SQL アウトライン」ビューにリストされる SQL ステートメントを抽出します。
Java ソース・コードからエクスポートした SQL ステートメントから pureQueryXML ファイルを作成するには、以下のようにします。
- アプリケーションから SQL を抽出します。
- 「SQL アウトライン」ビューで、ビューの下部にある「Java」タブをクリックして、「Java プロジェクト」ウィンドウを開きます。
- 「Java プロジェクト」ウィンドウで、Java ソース・コード・ファイルを右クリックして、「SQL のファイルへのエクスポート」をクリックします。
- 抽出した SQL ステートメントを含むファイルを pureQueryFolder¥MySample.sql として保存します。
ワークベンチで pureQueryFolder¥MySample.sql ファイルが作成されます。
注: ファイルを作成した後は、SQL ファイルを SQL エディターで開き、カーソル属性情報を追加して、SQL エディター内から pureQueryXML ファイルを作成できます。
- SQL ファイルから pureQueryXML ファイルを作成します。
- 必要に応じて、「パッケージ・エクスプローラー」ウィンドウで pureQueryFolder フォルダーの内容をリフレッシュして、MySample.sql ファイルを表示します。
- パッケージ・エクスプローラーで SQL ファイルを右クリックし、をクリックします。
- 「SQL ステートメントから pureQueryXML を生成」で、出力 pureQueryXML ファイルの場所を指定して、「次へ」をクリックします。
- 「Java プロジェクト」フィールドで、プロジェクトを選択します。
- 「pureQueryXML ファイル名」フィールドに、MySample.pdqxml という名前を入力します。
- Default.genProps ファイルに対して提示される更新を確認します。
ワークベンチは
Default.genProps ファイルを次のテキストのような情報で更新します。ここでは、pureQueryXML ファイルの
-rootPkgName オプションに値
myPkg が指定されます。
C:¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥MySample.pdqxml = -rootPkgName myPkg
- 「完了」をクリックします。
ワークベンチで pureQueryFolder¥MySample.pdqxml pureQueryXML ファイルが作成されます。
- pureQueryXML ファイルを表示します。
「パッケージ・エクスプローラー」ビューで pureQueryFolder¥MySample.pdqxml ファイルをダブルクリックします。
ファイルが pureQueryXML エディターで開かれます。ステートメント・セットの名前は myPkg です。
- pureQueryXML ファイルを閉じます。
- pureQueryXML ファイルの SQL ステートメントをバインドします。
MySample.pdqxml ファイルを右クリックし、をクリックします。
ワークベンチが
StaticBinder ユーティリティーを実行し、ユーティリティーからの出力を「コンソール」ビューに送信します。
================================================================================
The StaticBinder utility is beginning the bind operation for the pureQueryXml
file 'C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥MySample.pdqxml'.
Starting to process options:
-url "jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;"
-username "*****" -password "*****"
-pureQueryXml "C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥MySample.pdqxml"
The StaticBinder utility successfully bound the package 'myPkgA1' for the isolation level 'UR'.
The StaticBinder utility successfully bound the package 'myPkgA2' for the isolation level 'CS'.
The StaticBinder utility successfully bound the package 'myPkgA3' for the isolation level 'RS'.
The StaticBinder utility successfully bound the package 'myPkgA4' for the isolation level 'RR'.
The bind operation completed successfully for
'C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥MySample.pdqxml'.
================================================================================
Results of the StaticBinder utility's activity:
Number of items for which the bind operation SUCCEEDED: 1
Bind for XML file MySample.pdqxml using connection SAMPLE in project pq-tutorial succeeded.
- 新しい SQL ステートメントを実行するようにソース・コードを更新して、アプリケーションを実行します。
- 新しい SQL ステートメントを実行するように、アプリケーションのパラメーターを設定します。
次のコードで変数 i の値を 2 に変更します。
if ( args.length == 0) {
// value for the default SQL statement to run
i = 2 ;
- ファイルを保存します。
- アプリケーションを実行します。
MySample.java ファイルを右クリックし、をクリックします。
pureQueryXML ファイルで SQL ステートメントが見つからないことを示すエラーが、pureQuery ランタイムから返されます。
pureQuery ランタイムのプロパティー・ファイル src/pdq.properties では、pureQueryXML プロパティーの値は pureQueryFolder/capture.pdqxml です。pureQueryXML ファイルには、アプリケーションによって発行された SQL ステートメントは含まれません。
- pdq.properties ファイルの情報を変更し、pureQueryXML ファイルとして MySample.pdqxml ファイルを設定します。
- scr¥pdq.properties ファイルをダブルクリックします。
ファイルが PDQ プロパティー・エディターで開かれます。
- pureQueryXML プロパティーの値を pureQueryFolder/MySample.pdqxml に変更して、MySample.pdqxml ファイルを pureQueryXML ファイルとして設定します。
pdq.captureMode=OFF
pdq.capturedOnly=TRUE
pdq.executionMode=STATIC
pdq.pureQueryXml=pureQueryFolder/MySample.pdqxml
- アプリケーションを実行します。
MySample.java ファイルを右クリックし、をクリックします。
アプリケーションが実行されます。出力が「
コンソール」ウィンドウに表示されます。次に出力の例を示します。
=======
IBM Optim pureQuery Runtime 2.2.1.0 build 2.25.63
=======
case 2
case 2 - large projects: 11
Finished case 2
MySample.java pureQueryXML ファイルで SQL ステートメントと SAMPLE データベースのパッケージの間のマッピングを正しく設定すると、pureQuery ランタイムはステートメントを静的に実行できます。