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 オプションで使用するファイルを指定することができます。
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"
指定するインターフェースすべてで同じオプションを使用する場合には、このコマンドのみを使用することを選択できます。
>>-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-'
DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用することができます。
このオプションを指定しない場合は、後続のバインドによって生成されるデータベース・パッケージはバージョンなしで作成されます。
実行時のバージョン検査は、バージョン名ではなく、整合性トークンに基づいて行われます。
DB2 パッケージを作成するのではなく、pureQuery StaticBinder ユーティリティーを使用して DBRM ファイルを生成する計画である場合には、package-name-stem を大文字にし、最大 7 文字にする必要があります。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成する場合、package-name-stem と付加される分離レベルを示す文字の合計が 7 文字より長くなると、StaticBinder ユーティリティーは例外をスローします。
パッケージ名は単一データベース内で固有でなければならないため、複数のインターフェースに対して 1 つのルート・パッケージ名を指定することはできません。 そこで 1 つのインターフェースのみを指定する場合、コマンド行でルート・パッケージ名を指定できます。 また、オプション・ファイルでインターフェース用のルート・パッケージ名を指定することもできますが、defaultOptions 行の一部として指定することはできません。
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' '- -traceLevel--+-OFF-----+-' +-ALL-----+ +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'