pureQuery ジェネレーター・ユーティリティー

pureQuery ジェネレーター・ユーティリティーは、アノテーション付きメソッドを宣言するインターフェースにインプリメンテーション・クラスを生成します。

pureQuery ジェネレーター・ユーティリティーでは、使用する Eclipse 環境、およびインプリメンテーション・クラスの生成時に使用するデータベース、JDBC ドライバー、インターフェースをそれぞれ指定するパラメーターが必要になります。

このジェネレーターは、入力インターフェース・ファイルの内容を分析し、@Select、@Update、および @Call アノテーションで参照されるデータ・オブジェクトを照会または更新する Java コードを作成します。 ジェネレーターは、照会操作でターゲット Bean にデータを追加し、その Bean の内容を更新操作で入力データとして使用するコードを生成します。

多くの場合、pureQuery ユーザーはワークベンチを使用してアプリケーションを作成します。この環境においては、pureQuery サポートが有効な Java プロジェクトに含まれているすべての pureQuery アノテーション付きメソッド・インターフェースに対して、pureQuery ジェネレーターが自動的に起動します。 Java プロジェクトの通常の構築プロセスの一部として、インターフェースのインプリメンテーションが生成されます。

ただし、pureQuery ジェネレーターはコマンド行からも起動できます。pureQuery ジェネレーターは Eclipse インフラストラクチャーとプラグインによって提供される機能を使用しているので、pureQuery ジェネレーターは Eclipse のグラフィカル・ユーザー・インターフェースを起動しませんが、pureQuery ジェネレーターをコマンド行から起動するとリッチ・クライアント・プラットフォーム (RCP) アプリケーションとして実行されます。ファイル startup.jar は Eclipse のインストール・ディレクトリーにありますが、このファイルがクラス・パスに含まれていなければなりません。

オプション・ファイル

オプション・ファイルでは、pureQuery ジェネレーター・ユーティリティーで処理するインターフェース (複数可) と、インターフェースの処理方法をジェネレーターに通知するオプションをリストします。オプション・ファイルにリストされているすべてのインターフェースに適用されるデフォルト・オプションを設定できます。 さらに、デフォルト・オプションをオーバーライドして、個別のインターフェースに固有の他のオプションを設定できるように、インターフェースにオプションを設定することもできます。

ジェネレーターを実行するコマンドでは、-optionsFile オプションで使用するファイルを指定することができます。

例えば、pureQuery ジェネレーターの単純なオプション・ファイルは以下のようになります。
defaultOptions = -driverName com.ibm.db2.jcc.DB2Driver -url jdbc:db2://SRVR01:50000/DB01 -username user01 -password passw0rd
com.myCompany.MyInterfaceA = -collection NULLID
com.myCompany.MyInterfaceB = -collection COLL01 -xmlFile C:\overrides\myInterfaceB_sql2.xml
com.myCompany.MyInterfaceC = -url jdbc:db2://SRVR01:50001/DB02 -username user02 -password pass02 
この例では、defaultOptions で始まる行は、データベースに接続する際に使用するドライバー、データベースに接続するための URL、およびユーザー名とパスワードを指定します。これらの設定は、オプション・ファイルにあるすべてのインターフェースに適用されます。 最初の 2 つのインターフェースに固有の行は、それらのインターフェースのオプションのみを設定します。
さらに、各コメント行の前に # 記号を置くことによって、オプション・ファイルにコメントを含めることもできます。オプションのいずれかの値でこの記号を表示する必要がある場合は、以下のように値を二重引用符で囲みます。
-pkgVersion "ver#1"
コマンド行からジェネレーターを実行してオプション・ファイルを使用する場合、pureQuery は以下の優先順位でオプションを認識します。
  1. コマンド行のオプション
  2. 指定されたオプション・ファイルにある個別のインターフェースのオプション
  3. 指定されたオプション・ファイルにあるデフォルト・オプション

オプション・ファイルを使用しない場合にジェネレーター・ユーティリティーを実行するためのコマンドの構文

指定するインターフェースすべてで同じオプションを使用する場合には、このコマンドのみを使用することを選択できます。

構文図を読む構文図をスキップする
>>-java-- -application--com.ibm.pdq.tools.Generator------------->

>-- -data--temporary-workspace-- -driverName--JDBC-driver------->

>-- -url--connection-URL-- -username--user-ID-- -password--password-->

>--+------------------------+-- -rootPath--root_path------------>
   '- -noCleanup--+-TRUE--+-'                          
                  '-FALSE-'                            

>--+-----------------------------------------------------+------>
   '- -userClasspath--classpath-for-implementation-class-'   

>--+-------------------------------+---------------------------->
   '- -collection--collection-name-'   

>--+--------------------------------+--------------------------->
   '- -pkgVersion----+-AUTO-------+-'   
                     '-version-ID-'     

>--+----------------------------------+------------------------->
   '- -rootPkgName--package-name-stem-'   

>--+---------------------+--+---------------------+------------->
   '- -xmlFile--XML-file-'  '-|--Trace options--|-'   

                .-,----------------------------.   
                V                              |   
>-- -interface----Java-package.interface.class-+---------------->

>--+---------------------------------------------+-------------><
   '- -baseDataOverride--Java-package.class-name-'   

オプション・ファイルを使用する場合にジェネレーター・ユーティリティーを実行するためのコマンドの構文

オプション・ファイルを使用して、DB2 パッケージまたは DBRM ファイルを作成するためのインターフェースとオプションの名前を指定できます。 オプション・ファイルを使用すると、異なるインターフェースに別々のオプションを指定できます。

ワークベンチを使用する場合、(Default.genProps ファイルなどの) オプション・ファイル内に、個別にオプションを指定するインターフェースだけをリストできます。defaultOptions 行は、Java プロジェクト内にあるインターフェースすべてに適用されます。

構文図を読む構文図をスキップする
>>-java-- -application--com.ibm.pdq.tools.Generator------------->

>-- -data--temporary-workspace-- -driverName--JDBC-driver------->

>-- -url--connection-URL-- -username--user-ID-- -password--password-->

>-- -optionsFile--file-name--+------------------------+--------->
                             '- -noCleanup--+-TRUE--+-'   
                                            '-FALSE-'     

>-- -rootPath--root_path---------------------------------------->

>--+-----------------------------------------------------+------>
   '- -userClasspath--classpath-for-implementation-class-'   

>--+---------------------+-------------------------------------><
   '-|--Trace options--|-'   

残りの 2 つの構文図は、オプション・ファイル内で項目を作成する方法を説明しています。

ジェネレーター・ユーティリティーのオプション・ファイルにデフォルト・オプションを指定するための構文

この構文図は、オプション・ファイルにリストされているすべてのインターフェースに設定できるデフォルト・オプションを示しています。

構文図を読む構文図をスキップする
>>-defaultOptions--=-- -driverName--JDBC-driver----------------->

>-- -url--connection-URL-- -username--user-ID-- -password--password-->

>--+------------------------+-- -rootPath--root_path------------>
   '- -noCleanup--+-TRUE--+-'                          
                  '-FALSE-'                            

>--+-----------------------------------------------------+------>
   '- -userClasspath--classpath-for-implementation-class-'   

>--+---------------------+--+-------------------------------+--->
   '-|--Trace options--|-'  '- -collection--collection-name-'   

>--+--------------------------------+--------------------------->
   '- -pkgVersion----+-AUTO-------+-'   
                     '-version-ID-'     

>--+---------------------+-------------------------------------->
   '- -xmlFile--XML-file-'   

>--+---------------------------------------------+-------------><
   '- -baseDataOverride--Java-package.class-name-'   

ジェネレーター・ユーティリティーのオプション・ファイル内でデフォルト・オプションをオーバーライドするための構文

この構文図は、オプション・ファイルにリストされている各インターフェースに設定できるオプションを示しています。

構文図を読む構文図をスキップする
>>-Java-package.interface--=-- -driverName--JDBC-driver--------->

>-- -url--connection-URL-- -username--user-ID-- -password--password-->

>--+-------------------------------+---------------------------->
   '- -collection--collection-name-'   

>--+--------------------------------+--------------------------->
   '- -pkgVersion----+-AUTO-------+-'   
                     '-version-ID-'     

>--+----------------------------------+------------------------->
   '- -rootPkgName--package-name-stem-'   

>--+---------------------+-------------------------------------->
   '- -xmlFile--XML-file-'   

>--+---------------------------------------------+-------------><
   '- -baseDataOverride--Java-package.class-name-'   

オプションの説明

-baseDataOverride Java-package.class-name
生成されるインプリメンテーション・クラスが拡張する Java クラスの名前を指定できるようにします。 デフォルトでは、生成されるインプリメンテーション・クラスは、クラス com.ibm.pdq.runtime.generator.BaseData を拡張します。 独自のクラスを指定することにより、生成されるインプリメンテーション・クラスを独自のメソッドを使用して拡張できます。 このオプションの詳細は、インプリメンテーション・クラスをユーザー定義のクラスで拡張するを参照してください。
-collection collection-name
StaticBinder ユーティリティーをあとで実行する場合は、静的 SQL を使用するアプリケーションの開発をサポートする、このオプションを使用します。 このオプションは、pureQuery StaticBinder ユーティリティーがバインドするパッケージの修飾子を指定します。 修飾子は、使用している DB2 データベースのコレクション名の制約を満たしている必要があります。
このパラメーターを指定しない場合、値のデフォルトは NULLID です。
-data
Eclipse 一時ワークスペースとして使用するディレクトリーを指定します。
-driverName
データベースに接続するために使用する JDBC ドライバーの名前。
-interface
pureQuery Generator ユーティリティーでインプリメンテーション・クラスを作成するときの、コンパイルされるインターフェースの名前。 名前は、このクラスが置かれている Java パッケージの名前で修飾されている必要があります。
Java-package.interface (オプション・ファイルの行の始め)
指定されたインターフェースに入っている SQL ステートメントのみにこの行のオプションが適用されることを指定します。 これらのオプションは、デフォルトとして指定したオプションをオーバーライドします。
インターフェースが属する Java パッケージの名前を使用して、インターフェースの名前を修飾する必要があります。
-noCleanup TRUE|FALSE
指定した Eclipse ワークスペースに pureQuery Generator ユーティリティーが Java プロジェクトを作成する必要がある場合、このオプションは、インプリメンテーションの生成後に pureQuery Generator ユーティリティーが Java プロジェクトを削除するかどうかを指定します。
TRUE
pureQuery Generator ユーティリティーは Java プロジェクトを削除しません。
FALSE
pureQuery Generator ユーティリティーは Java プロジェクトを削除します。これはデフォルト値です。
-optionsFile file-name
インプリメンテーション・クラスを生成する対象となるインターフェースをリストするファイルの名前 (絶対パスまたは相対パスを含む)。
オプション・ファイルには、各インターフェースのオプションのセットとともに、デフォルト・オプションのセットおよびインターフェースのリストを含めることができます。 オプション・ファイルを指定する場合、コマンド行でいくつかのオプションを指定することもできます。 デフォルト・オプションとして指定されたオプションは、特にそのインターフェース用にリストされているオプション、あるいはコマンド行で提供されたオプションによってオーバーライドされる場合を除き、インターフェース用に使用されます。
-password
データ・ソースに接続するために使用するパスワード。
-pkgVersion AUTO|version-ID
StaticBinder ユーティリティーをあとで実行する場合は、静的 SQL を使用するアプリケーションの開発をサポートする、このオプションを使用します。 このオプションは、パッケージをバインドするときに使用されるパッケージ・バージョンを指定します。

DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用することができます。

このオプションを指定しない場合は、後続のバインドによって生成されるデータベース・パッケージはバージョンなしで作成されます。

AUTO
現在のタイム・スタンプを使用してバージョンが自動的に生成されることを指定します。
version-ID
パッケージのバージョン ID を指定します。ストリングは、使用している DB2 のバージョンにおいて有効なものにする必要があります。

実行時のバージョン検査は、バージョン名ではなく、整合性トークンに基づいて行われます。

-rootPkgName package-name-stem
StaticBinder ユーティリティーをあとで実行する場合は、静的 SQL を使用するアプリケーションの開発をサポートする、このオプションを使用します。 このオプションは、DB2 パッケージに使用される名前の語幹を指定します。 パッケージを作成およびバインドするときに、分離レベルを示す数値がこの名前に付加されます。 絶対パス名 (名前の語幹と分離レベルを示す数値) がパッケージに指定されます。package-name-stem は、使用している DB2 データベースで設定された制約の範囲内でなければなりません。

DB2 パッケージを作成するのではなく、pureQuery StaticBinder ユーティリティーを使用して DBRM ファイルを生成する計画である場合には、package-name-stem を大文字にし、最大 7 文字にする必要があります。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成する場合、package-name-stem と付加される分離レベルを示す文字の合計が 7 文字より長くなると、StaticBinder ユーティリティーは例外をスローします。

パッケージ名は単一データベース内で固有でなければならないため、複数のインターフェースに対して 1 つのルート・パッケージ名を指定することはできません。 そこで 1 つのインターフェースのみを指定する場合、コマンド行でルート・パッケージ名を指定できます。 また、オプション・ファイルでインターフェース用のルート・パッケージ名を指定することもできますが、defaultOptions 行の一部として指定することはできません。

-rootPath
pureQuery Generator ユーティリティーがインプリメンテーション・クラスを作成するディレクトリー。
トレース・オプション
メッセージをログに記録するファイルを指定したり、ログに記録する情報レベルを指定したりできます。
構文図を読む構文図をスキップする
>>-+------------------------+--+---------------------------+---><
   '- -traceFile--file-name-'  '- -traceLevel--+-OFF-----+-'   
                                               +-ALL-----+     
                                               +-SEVERE--+     
                                               +-WARNING-+     
                                               +-INFO----+     
                                               +-CONFIG--+     
                                               +-FINE----+     
                                               +-FINER---+     
                                               '-FINEST--'     

-traceFile file-name
操作に関する情報をログに記録するために使用するファイルの絶対パスまたは相対パスと名前を指定します。
ファイルがすでに存在する場合、pureQuery は新規のメッセージを既存のファイルの内容に追加します。
-traceLevel
ログに記録する情報のタイプを指定します。 デフォルトのレベルは OFF です。ログ項目を書き込むファイルを指定せず、このオプションを OFF 以外の値に設定した場合、項目はコンソールに書き込まれます。
-url connection-URL
データベースに接続するためのタイプ 4 JDBC URL。
-username
データ・ソースに接続するために使用するユーザー ID。
-userClasspath
インターフェースにある外部参照を解決するためのクラスパス。
-xmlFile
インターフェースで定義されたメソッドの SQL を指定またはオーバーライドする SQL が入っている XML 構成ファイルの名前。 XML 構成ファイルは、対応する pureQuery Bean の定義もオーバーライドできます。
関連概念
pureQuery ジェネレーターと共に XML 構成ファイルを使用する
関連タスク
他の pureQuery ユーティリティーからの pureQuery ログ・ユーティリティーのプロパティーの設定
関連資料
pureQuery StaticBinder ユーティリティー

フィードバック