Generator 유틸리티

pureQuery Generator 유틸리티는 어노테이션이 있는 메소드를 선언하는 인터페이스에 대한 구현 클래스를 생성합니다.

이 주제에는 다음과 같은 섹션이 있습니다.

다이어그램에서 사용되는 규칙을 이해하려면 구문 다이어그램 읽는 방법을 참조하십시오.

개요

pureQuery Generator 유틸리티에는 구현 클래스를 생성할 때 사용할 데이터베이스, JDBC 드라이버 및 인터페이스, Eclipse 환경을 지정하는 매개변수가 필요합니다.

Generator는 입력 인터페이스 파일의 컨텐츠를 분석하고 @Select, @Update 및 @Call 주석에서 참조되는 Data 오브젝트를 쿼리하거나 갱신하는 Java™ 코드를 작성합니다. Generator는 쿼리 조작 시 목표 Bean을 채우는 코드를 생성하고 갱신 시 Bean 컨텐츠를 입력 데이터로 사용합니다.

많은 pureQuery 사용자가 태스크를 사용하여 응용프로그램을 빌드합니다. 이러한 환경에서 pureQuery Generator는 pureQuery 지원이 사용 가능한 Java 프로젝트에 포함된 모든 pureQuery 어노테이션이 있는 메소드 인터페이스에 대해 자동으로 호출됩니다. 인터페이스 구현의 생성은 Java 프로젝트에 대한 일반 빌드 프로세스의 일부로 발생합니다.

그러나 명령행에서 pureQuery Generator를 호출할 수도 있습니다. IBM® Data Studio Developer 또는 IBM Optim™ Development Studio가 설치되어 있어야 합니다. 두 제품 중 설치한 제품에 따라, Generator 유틸리티를 실행할 때 다음 .jar 파일을 시스템 클래스 경로나 JVM 클래스 경로에 포함시켜야 합니다.

Generator 유틸리티는 Data Studio Developer 또는 Optim Development Studio를 시작하지 않습니다. 이 제품이 제공하는 플러그인과 기본 구조만 사용합니다.

옵션 파일

옵션 파일은 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 및 사용자 이름과 암호를 지정합니다. 이들 설정은 옵션 파일에 있는 인터페이스 모두에 적용됩니다. 처음 두 인터페이스에 특정적인 행은 이들 인터페이스에 대해서만 옵션을 설정합니다.
# 기호를 주석의 각 행 앞에 추가하여 옵션 파일에 주석을 포함시킬 수도 있습니다. 이 기호가 옵션 중 하나의 값에 나타나야 한다면 값을 큰따옴표로 표시합니다.
-pkgVersion "ver#1"
명령행에서 생성 프로그램을 실행하고 옵션 파일을 사용하면, pureQuery는 다음 우선순위 순서대로 옵션을 인식합니다.
  1. 명령행의 옵션
  2. 지정된 옵션 파일의 개별 인터페이스에 대한 옵션
  3. 지정된 옵션 파일의 디폴트 옵션

옵션 파일을 사용하지 않는 경우 Generator 유틸리티를 실행하기 위한 명령 구문

지정하는 모든 인터페이스에 대해 동일한 옵션을 사용하려는 경우에 명령만 사용하도록 선택할 수 있습니다.

구문 도표 읽기시각적 구문 도표 생략
                                                                                    (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-'   

주:
  1. 임의의 순서로 옵션을 지정할 수 있습니다.
  2. 구문의 경우 해당 옵션의 설명을 참조하십시오.

옵션 파일을 사용하는 경우 Generator 유틸리티를 실행하기 위한 명령 구문

옵션 파일을 사용하여 인터페이스의 이름과 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 |-----'   

주:
  1. 임의의 순서로 옵션을 지정할 수 있습니다.
  2. 구문의 경우 해당 옵션의 설명을 참조하십시오.

나머지 두 개의 구문 다이어그램은 옵션 파일에 항목을 작성하는 방법에 대해 설명합니다.

Generator 유틸리티의 옵션 파일에 디폴트 옵션을 지정하기 위한 구문

이 구문 다이어그램에서는 옵션 파일에 나열하는 모든 인터페이스에 대해 설정할 수 있는 디폴트 옵션에 대해 설명합니다.

구문 도표 읽기시각적 구문 도표 생략
                     (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. 임의의 순서로 옵션을 지정할 수 있습니다.
  2. 구문의 경우 해당 옵션의 설명을 참조하십시오.

Generator 유틸리티의 옵션 파일에서 디폴트 옵션을 겹쳐쓰기 위한 구문

이 구문 다이어그램에서는 옵션 파일에 나열하는 각 인터페이스에 대해 설정할 수 있는 옵션에 대해 설명합니다.

구문 도표 읽기시각적 구문 도표 생략
                             (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-'   

주:
  1. 임의의 순서로 옵션을 지정할 수 있습니다.

옵션에 대한 설명

-baseDataOverride Java-package.class-name
생성된 구현 클래스가 확장할 Java 클래스의 이름을 지정합니다. 디폴트로 생성된 구현 클래스는 com.ibm.pdq.runtime.generator.BaseData 클래스를 확장합니다. 고유 클래스를 지정하여 고유 메소드를 통해 생성된 구현 클래스를 확장할 수 있습니다.
-collection collection-name
StaticBinder 유틸리티를 이후 실행하려면 정적 SQL을 사용하는 응용프로그램 개발을 지원하는 이 옵션을 사용합니다. 이 옵션은 pureQuery StaticBinder 유틸리티가 바인드하는 패키지의 규정자를 지정합니다. 규정자는 사용 중인 DB2 데이터베이스의 콜렉션 이름에 대한 제한조건을 충족해야 합니다.
이 매개변수를 지정하지 않으면 NULLID가 디폴트값으로 설정됩니다.
-data path
사용할 Generator 유틸리티에 대한 임시 Eclipse 작업 스페이스의 절대 경로를 지정합니다.
-driverName name
데이터베이스에 연결하는 데 사용하는 JDBC 드라이버의 이름입니다.
-forceSingleBindIsolation TRUE | FALSE
단일 분리 레벨로 DB2 패키지를 작성할 지 그리고 패키지 이름에 번호를 추가하여 분리 레벨을 표시할 지 여부를 지정합니다. 디폴트 값은 false이며 숫자 표시기가 추가된다는 것을 의미합니다.
StaticBinder 유틸리티의 -isolationLevel 옵션과 함께 이 옵션을 사용합니다.

-isolationLevel 옵션을 사용하여 단일 명령문 세트를 두 개 또는 세 개의 다른 패키지(각 패키지는 다른 분리 수준에 있음)에 바인드하려는 경우, 명령문 세트가 표시되는 pureQueryXML 파일에 대해 Configure 유틸리티를 실행할 때 -forceSingleBindIsolation 옵션을 사용하지 마십시오.

예를 들어, StaticBinder 유틸리티에 대한 옵션 파일에서 다음 두 엔트리를 포함시켰다고 가정하겠습니다.

C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel UR
C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel CS

captureFile.pdqxml 파일에 대해 Configure 유틸리티를 실행할 때 -forceSingleBindIsolation 옵션을 사용한 경우 StaticBinder 유틸리티는 다음 조치를 수행합니다.

  1. UR 분리 수준에서 패키지 MYPKGA를 바인드합니다.
  2. CS 분리 수준에서 패키지 MYPKGA를 리바인드합니다.

결과는 CS 분리 수준에서 바인드된 단일 MYPKGA 패키지입니다.

결과가 두 개의 MYPKGA 패키지(하나는 UR 분리 수준에서 다른 하나는 CS 분리 수준에서)가 되도록 하려면, captureFile.pdqxml에 대해 Configure 유틸리티를 실행할 때 -forceSingleBindIsolation 옵션을 사용하지 마십시오.

-interface java-package.interface-class
구현 클래스를 작성할 pureQuery Generator 유틸리티가 컴파일된 인터페이스의 이름입니다. 이 이름은 해당 클래스가 있는 Java 패키지의 이름을 완전하게 지정해야 합니다.
Java-package.interface (옵션 파일의 행 시작에서)
행의 옵션이 지정된 인터페이스의 SQL문에만 적용되도록 지정합니다. 해당 옵션은 디폴트값으로 지정한 옵션을 겹쳐씁니다.
인터페이스가 해당되는 Java 패키지의 이름으로 인터페이스 이름을 지정해야 합니다.
-noCleanup TRUE|FALSE
pureQuery 생성 프로그램 유틸리티가 지정된 Eclipse 작업 스페이스에서 Java 프로젝트를 작성해야 하는 경우, 이 옵션은 pureQuery 생성 프로그램 유틸리티가 구현 생성 후 Java 프로젝트를 삭제하는지 여부를 지정합니다.
TRUE
pureQuery 생성 프로그램 유틸리티가 Java 프로젝트를 삭제하지 않습니다.
FALSE
pureQuery 생성 프로그램 유틸리티는 Java 프로젝트를 삭제합니다. 이 값이 디폴트값입니다.
-optionsFile file-name
클래스에 대해 구현하려는 인터페이스를 나열하는, 절대 또는 상대 경로를 포함한 파일 이름입니다.
옵션 파일에는 각 인터페이스의 옵션 세트와 함께 인터페이스 목록뿐만 아니라 디폴트 옵션 세트를 포함할 수 있습니다. 옵션 파일을 지정하면 명령행에 일부 옵션을 지정할 수도 있습니다. 해당 인터페이스에 특정적으로 나열된 옵션이나 명령행에서 제공된 옵션으로 겹쳐쓰지 않은 경우, 디폴트 옵션으로 제공된 옵션이 인터페이스로 사용됩니다.
-password 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 패키지를 작성하지 않고 DBRM 파일을 생성하는 pureQuery StaticBinder 유틸리티를 사용하려는 경우, package-name-stem은 대문자여야하며 최대 7자이어야 합니다. StaticBinder 유틸리티를 사용하여 DBRM 파일 및 package-name-stem을 생성하고 분리 레벨로 추가된 문자가 7자를 초과하면, StaticBinder 유틸리티가 예외로 처리합니다.

패키지 이름은 단일 데이터베이스 내에서 고유해야 하므로 둘 이상의 인터페이스 파일에 대해 하나의 루트 패키지 이름을 지정할 수 없습니다. 정확히 하나의 인터페이스를 지정하면 명령행에 루트 패키지 이름을 지정할 수 있습니다. 또한, defaultOptions 행의 일부가 아닌 옵션 파일의 인터페이스에 대해 루트 패키지 이름을 지정할 수 있습니다.

-rootPath root-path
생성 프로그램 유틸리티가 처리할 인터페이스를 포함하는 디렉토리에 대한 절대 경로입니다.

예를 들어, 디렉토리는 C:\user\app1\일 수 있습니다. 해당 디렉토리는 C:\user\app1\com\myCompany\와 같은 Java 패키지에 해당되는 디렉토리일 수 있습니다.

생성 프로그램 유틸리티의 -interface 옵션으로, 유틸리티가 처리할 인터페이스의 이름을 지정하며, com.myCompany.MyInterface의 예에서처럼 패키지의 이름으로 이름을 지정합니다.

인터페이스를 컴파일할 수 있어야 합니다.

생성 프로그램 유틸리티가 해당 인터페이스와 같은 디렉토리에 구현 클래스를 생성합니다. 그러므로 각 구현 클래스가 인터페이스와 같은 Java 패키지에 작성됩니다.

C:\user\app1\로 설정된 -rootPath 및 com.myCompany.MyInterface로 설정된 -interface로 pureQuery 생성 프로그램 유틸리티를 실행하면, 유틸리티는 C:\user\app1\com\myCompany\ 디렉토리에 MyInterfaceImpl.java 클래스를 생성합니다. 클래스의 완전한 이름은 com.myCompany.MyInterfaceImpl입니다.

-rootPath 옵션을 사용하지 않으면 pureQuery 생성 프로그램 유틸리티는 현재 작업 디렉토리를 사용합니다.

Trace options
메시지를 로그할 파일 및 로그할 정보 레벨을 지정할 수 있습니다.
구문 도표 읽기시각적 구문 도표 생략
>>-+------------------------+--+---------------------------+---><
   '- -traceFile--file-name-'  |               .-OFF-----. |   
                               '- -traceLevel--+-ALL-----+-'   
                                               +-SEVERE--+     
                                               +-WARNING-+     
                                               +-INFO----+     
                                               +-CONFIG--+     
                                               +-FINE----+     
                                               +-FINER---+     
                                               '-FINEST--'     

-traceFile file-name
조작에 대한 정보를 로그하는데 사용하려는 절대 또는 상대 경로 및 파일 이름을 지정합니다.
파일이 이미 존재한다면 pureQuery는 새 메시지를 파일의 기존 컨텐츠에 추가합니다.디폴트로, 엔트리는 System.err에 기록됩니다.
-traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
로그할 정보 유형을 지정합니다. 디폴트 레벨은 OFF입니다. 로그 엔트리를 기록할 파일을 지정하지 않고 이 옵션을 OFF가 아닌 다른 값으로 설정하는 경우, 엔트리는 System.err에 기록됩니다.
-url connection-URL
데이터베이스를 연결하기 위한 유형 4 JDBC URL입니다.
-username user ID
데이터 소스에 연결하는 데 사용하는 사용자 ID입니다.
-userClasspath classpath
pureQuery가 인터페이스에서 클래스 파일 종속성을 분석하기 위해 필요로 하는 pdq.jar, pdqmgmt.jar, JDBC 드라이버의 JAR 파일 및 기타 JAR 또는 클래스 파일의 경로를 제공하는 클래스 경로를 지정합니다.
-xmlFile XML-file
인터페이스에 정의된 메소드에서 SQL를 지정하거나 겹쳐쓰는 SQL을 포함하는 XML 구성 파일의 이름입니다. XML 구성 파일은 해당 Bean의 정의를 겹쳐쓸 수도 있습니다.

피드백