このトピックには以下のセクションが含まれています。
図で使用される規則を理解するには、構文図の読み方を参照してください。
pureQuery Generator ユーティリティーでは、使用する Eclipse 環境、およびインプリメンテーション・クラスの生成時に使用するデータベース、JDBC ドライバー、インターフェースをそれぞれ指定するパラメーターが必要になります。
このジェネレーターは、入力インターフェース・ファイルの内容を分析し、@Select、@Update、および @Call アノテーションで参照されるデータ・オブジェクトを照会または更新する Java コードを作成します。 ジェネレーターは、照会操作でターゲット Bean にデータを追加し、その Bean の内容を更新操作で入力データとして使用するコードを生成します。
多くの場合、pureQuery ユーザーはワークベンチを使用してアプリケーションを作成します。この環境においては、pureQuery サポートが有効な Java プロジェクトに含まれているすべての pureQuery アノテーション付きメソッド・インターフェースに対して、pureQuery ジェネレーターが自動的に起動します。 Java プロジェクトの通常の構築プロセスの一部として、インターフェースのインプリメンテーションが生成されます。
ただし、pureQuery ジェネレーターはコマンド行からも起動できます。IBM® Data Studio Developer または IBM Optim™ Development Studio をインストールしていなければなりません。これらの 2 つの製品のうちどちらをインストールしているかに応じて、Generator ユーティリティーの実行時には、システム・クラスパスか JVM クラスパスのどちらかに以下の .jar ファイルを組み込まなければなりません。
Generator ユーティリティーは、Data Studio Developer または Optim Development Studio を起動しません。これらの製品が提供するインフラストラクチャーやプラグインを利用するだけです。
オプション・ファイルは、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"
指定するインターフェースすべてで同じオプションを使用する場合には、このコマンドのみを使用することを選択できます。
(1) >>-java--org.eclipse.core.launcher.Main-- -application--com.ibm.pdq.tools.Generator------> >-- -data--temporary-workspace-- -driverName--JDBC-driver-------> >-- -url--connection-URL-- -username--user-ID-- -password--password--> >--+------------------------+-- -rootPath--root_path------------> | .-FALSE-. | '- -noCleanup--+-TRUE--+-' >--+----------------------------+-------------------------------> '- -userClasspath--classpath-' >--+-----------------------------------+------------------------> | .-NULLID----------. | '- -collection--+-collection-name-+-' >--+--------------------------------+---------------------------> '- -pkgVersion-- -+-AUTO-------+-' '-version-ID-' >--+----------------------------------+-------------------------> '- -rootPkgName--package-name-stem-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+---------------------+--+-----------------------+-----------> '- -xmlFile--XML-file-' | (2) | '-| Trace options |-----' .------------------------------. V | >-- -interface----Java-package.interface.class-+----------------> >--+---------------------------------------------+------------->< '- -baseDataOverride--Java-package.class-name-'
オプション・ファイルを使用して、DB2® パッケージまたは DBRM ファイルを作成するためのインターフェースとオプションの名前を指定できます。 オプション・ファイルを使用すると、異なるインターフェースに別々のオプションを指定できます。
ワークベンチを使用する場合、(Default.genProps ファイルなどの) オプション・ファイル内に、個別にオプションを指定するインターフェースだけをリストできます。defaultOptions 行は、Java プロジェクト内にあるインターフェースすべてに適用されます。
(1) >>-java--org.eclipse.core.launcher.Main-- -application--com.ibm.pdq.tools.Generator------> >-- -data--temporary-workspace-- -driverName--JDBC-driver-------> >-- -url--connection-URL-- -username--user-ID-- -password--password--> >-- -optionsFile--file-name--+------------------------+---------> | .-FALSE-. | '- -noCleanup--+-TRUE--+-' >-- -rootPath--root_path--+----------------------------+--------> '- -userClasspath--classpath-' >--+-----------------------+----------------------------------->< | (2) | '-| Trace options |-----'
残りの 2 つの構文図は、オプション・ファイル内で項目を作成する方法を説明しています。
この構文図は、オプション・ファイルにリストされているすべてのインターフェースに設定できるデフォルト・オプションを示しています。
(1) >>-defaultOptions--=------ -driverName--JDBC-driver-------------> >-- -url--connection-URL-- -username--user-ID-- -password--password--> >--+------------------------+-- -rootPath--root_path------------> | .-FALSE-. | '- -noCleanup--+-TRUE--+-' >--+----------------------------+--+-----------------------+----> '- -userClasspath--classpath-' | (2) | '-| Trace options |-----' >--+-----------------------------------+------------------------> | .-NULLID----------. | '- -collection--+-collection-name-+-' >--+--------------------------------+---------------------------> '- -pkgVersion-- -+-AUTO-------+-' '-version-ID-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+---------------------+--------------------------------------> '- -xmlFile--XML-file-' >--+---------------------------------------------+------------->< '- -baseDataOverride--Java-package.class-name-'
この構文図は、オプション・ファイルにリストされている各インターフェースに設定できるオプションを示しています。
(1) >>-Java-package.interface--=------ -driverName--JDBC-driver-----> >-- -url--connection-URL-- -username--user-ID-- -password--password--> >--+-----------------------------------+------------------------> | .-NULLID----------. | '- -collection--+-collection-name-+-' >--+--------------------------------+---------------------------> '- -pkgVersion-- -+-AUTO-------+-' '-version-ID-' >--+----------------------------------+-------------------------> '- -rootPkgName--package-name-stem-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+---------------------+--------------------------------------> '- -xmlFile--XML-file-' >--+---------------------------------------------+------------->< '- -baseDataOverride--Java-package.class-name-'
-isolationLevel オプションを使用して単一のステートメント・セットを 2 つまたは 3 つの異なるパッケージに、それぞれ異なる分離レベルでバインドする場合、ステートメント・セットが含まれる pureQueryXML ファイルに対して構成ユーティリティーを実行するときは -forceSingleBindIsolation オプションを使用しないでください。
例えば、StaticBinder ユーティリティーのオプション・ファイルに、次の 2 つの項目を組み込んだとします。
C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel UR C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel CS
構成ユーティリティーを captureFile.pdqxml ファイルに対して実行するときに -forceSingleBindIsolation オプションを使用した場合、StaticBinder ユーティリティーは次のアクションを実行します。
結果として、単一の MYPKGA パッケージは、CS 分離レベルでバインドされます。
バインドの結果が 2 つの MYPKGA パッケージ (1 つは UR 分離レベル、もう 1 つは CS 分離レベルのもの) となるようにする場合は、captureFile.pdqxml に対して構成ユーティリティーを実行するときに -forceSingleBindIsolation オプションを使用しないでください。
DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用できます。
このオプションを指定しなかった場合には、それ以降のバインドで作成されるデータベース・パッケージは、バージョンなしで作成されます。
実行時のバージョンの検査は、バージョン名ではなく整合性トークンに基づいて行われます。
pureQuery StaticBinder ユーティリティーを使用して、 DB2 パッケージを作成するのではなく、DBRM ファイルを生成する場合には、 package-name-stem は、最長で 7 文字までの大文字にする必要があります。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成し、 package-name-stem に分離レベルの追加文字を加えたストリングが 7 文字より長い場合には、 StaticBinder ユーティリティーは例外をスローします。
パッケージ名は単一のデータベース内で固有である必要があります。そのため、複数のインターフェースに対して単一のルート・パッケージを指定することはできません。 コマンド行で、インターフェースをちょうど 1 つ指定した場合には、ルート・パッケージ名を指定できます。 また、オプション・ファイルでもインターフェースのルート・パッケージ名を指定できますが、defaultOptions 行の一部としては指定できません。
例えば、ディレクトリーは C:¥user¥app1¥ などです。 Java パッケージに対応するディレクトリーはこのディレクトリー内になります (例: C:¥user¥app1¥com¥myCompany¥)。
ジェネレーター・ユーティリティーの -interface オプションを使用して、 ユーティリティーで処理するインターフェースの名前を指定します。この名前は、パッケージの名前で修飾します (この例では、com.myCompany.MyInterface のようにします)。
インターフェースはコンパイルできる必要があります。
ジェネレーター・ユーティリティーは、対応するインターフェースと同じディレクトリーにインプリメンテーション・クラスを生成します。 そのため、各インプリメンテーション・クラスは、インターフェースと同じ Java パッケージ内に作成されます。
-rootPath を C:¥user¥app1¥ に設定し、-interface を com.myCompany.MyInterface に設定して pureQuery ジェネレーター・ユーティリティーを実行すると、 このユーティリティーは、ディレクトリー C:¥user¥app1¥com¥myCompany¥ にクラス MyInterfaceImpl.java を生成します。 クラスの完全修飾名は、com.myCompany.MyInterfaceImpl です。
-rootPath オプションを使用しなかった場合には、pureQuery ジェネレーター・ユーティリティーは、現行作業ディレクトリーを使用します。
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'