Ten dokument XML stanowi przykładowe dane wejściowe dla transformacji JET z szablonami
GenProcedureInlineSample.jet, GenProcedureInlineJunit.jet, GenProcedureInterface.jet,
GenProcedureInterfaceJunit.jet, GenProcedureInterfaceTest.jet lub GenProcedureParmBean.jet.
Dokument XML opisuje procedurę składowaną salaryGreater, która pobiera wartość
salvalue parametru IN. Procedura składowana zwraca tabelę wynikową, która zawiera wszystkie wiersze z tabeli
STAFF, w których wartość SALARY jest większa niż wartość parametru IN.
<?xml version="1.0" encoding="UTF-8"?>
<genCodeData>
<selection genInlineSample="true" genInterface="true" genInterfaceTest="true" genAlwaysJUnit="false"
genIncludeConn="false" genType="genFromProcedure"/>
<connection name="SAMPLE1"/>
<target package="myPackage" project="MyProject" srcContainer="src"/>
<procedure includeSchemaInSQL="true" name="SALARY_GREATER" schema="MSCHEMA">
<procParameters genPublicFields="true" importTypes=""
name="Salary_greaterParam" superClass="">
<parameter javaType="String" name="salvalue"/>
</procParameters>
<codeNames importTypes="import java.sql.BigDecimal;" inlineSampleName="Salary_greaterInlineTest"
interfaceMerge="true" interfaceName="Salary_greaterData" interfaceTestName="Salary_greaterDataTest"/>
<results>
<resultSet>
<bean genPublicFields="true" importAnnotations="import com.ibm.pdq.annotation.Column;"
importTypes="import java.math.BigDecimal;" name="StaffRecord" superClass=""/>
<fieldInfos>
<field>
<column name="COMM"/>
<parameter javaType="BigDecimal" name="comm"/>
</field>
<field>
<column name="DEPT"/>
<parameter javaType="int" name="dept"/>
</field>
<field>
<column name="ID"/>
<parameter javaType="int" name="serial"/>
</field>
<field>
<column name="JOB"/>
<parameter javaType="String" name="job"/>
</field>
<field>
<column name="NAME"/>
<parameter javaType="String" name="name"/>
</field>
<field>
<column name="SALARY"/>
<parameter javaType="BigDecimal" name="salary"/>
</field>
<field>
<column name="YEARS"/>
<parameter javaType="int" name="years"/>
</field>
</fieldInfos>
</resultSet>
</results>
</procedure>
</genCodeData>
- selection
- Atrybuty tego znacznika opisują, jaki kod pureQuery jest generowany z pomocą tego dokumentu
XML, a także opisują kreator, który inicjuje generowanie kodu.
- genInlineSample
- Określa, czy generować klasę testową, która korzysta ze stylu programowania
metody wstawianej. Dopuszczalne wartości to true (tak) i false (nie).
- genInterface
- Określa, czy generować interfejs, który korzysta ze stylu programowania metody
z adnotacją. Dopuszczalne wartości to true (tak) i false (nie).
- genInterfaceTest
- Określa, czy generować klasę testową, która wywołuje metody z implementacji
wygenerowanego interfejsu. Dopuszczalne wartości to true (tak) i false (nie).
- genAlwaysJUnit
- Określa, czy generować klasy testowe jako przypadki testowe JUnit. Dopuszczalne wartości to true (tak) i false (nie).
- genIncludeConn
- Określ, czy dołączać informacje na temat połączenia z bazą danych do wygenerowanych klas testowych. Dopuszczalne wartości to true (tak) i false (nie).
- genType
- Określa, że generowanie kodu inicjuje kreator Generowanie kodu pureQuery
dla procedury składowanej.
- connection
- Atrybut tego znacznika określa nazwę połączenia z bazą danych do użycia.
- name
- Określa nazwę połączenia z bazą danych do użycia.
- target
- Atrybuty tego znacznika opisują miejsce, w którym ma być utworzony kod generowany w środowisku
roboczym.
- package
- Określa nazwę pakietu Java, w którym ma być umieszczony generowany kod.
- project
- Określa nazwę projektu Java, w którym ma być umieszczony generowany kod.
- srcContainer
- Określa folder w projekcie, w którym ma być umieszczony wygenerowany kod.
- procedure
- Atrybuty tego znacznika wyznaczają procedurę składowaną, na podstawie której ma być generowany kod
pureQuery, a także, w jaki sposób formatować nazwę procedury składowanej w wynikowych instrukcjach
SQL.
- includeSchemaInSQL
- Określa, czy do generowanych instrukcji SQL dołączany jest schemat.
Dopuszczalne wartości to true (tak) i false (nie).
- name
- Określa nazwę procedury składowanej.
- schema
- Określa schemat procedury składowanej.
- procParameters
- Atrybuty tego znacznika opisują generowany komponent bean pureQuery.
- genPublicFields
- Określa poziom dostępu do pól komponentu bean.
- Wartość true powoduje generowanie pól komponentu bean jako pól publicznych.
- Wartość false powoduje generowanie pól komponentu bean jako pól chronionych, do których dostęp jest możliwy
za pomocą metod pobierających i ustawiających.
- importTypes
- Określa, które typy języka Java mają być importowane.
- name
- Określa nazwę komponentu bean pureQuery.
- superClass
- Określa nadklasę komponentu bean pureQuery, jeśli zostanie ona określona w kreatorze
Generowanie kodu pureQuery dla procedury składowanej.
- parameter
- Atrybuty tego znacznika opisują dane pole komponentu bean pureQuery.
- javaType
- Określa typ danych Java
dla pola komponentu bean pureQuery.
- name
- Określa nazwę pola.
- codeNames
- Atrybuty tego znacznika określają nazwy używane dla wygenerowanego
kodu pureQuery.
- importTypes
- Określa, które typy języka Java mają być importowane. Zaimportować trzeba wszystkie typy, które nie są częścią pakietu java.lang.*.
- inlineSampleName
- Określa nazwę dla wygenerowanej klasy testowej dla stylu programowania metody
wstawianej.
- interfaceMerge
- Jeśli określona nazwa interfejsu do wygenerowania jest zgodna z nazwą klasy
Java, która już istnieje w docelowym projekcie Java, określa scalanie zawartości istniejącej klasy z nowo wygenerowanym interfejsem.
- interfaceName
- Określa nazwę interfejsu do wygenerowania dla stylu programowania metody z adnotacją.
- interfaceTestName
- Określa nazwę klasy testowej dla stylu programowania metody z adnotacją.
- results
- Znaczniki w tym znaczniku opisują komponenty bean pureQuery do wygenerowania dla każdej tabeli wynikowej,
którą może zwrócić procedura składowana.
- resultSet
- Znaczniki tego znacznika opisują generowany komponent bean pureQuery dla pojedynczej
tabeli wynikowej.
- bean
- Atrybuty tego znacznika opisują generowany komponent bean pureQuery dla pojedynczej
tabeli wynikowej.
- genPublicFields
- Określa poziom dostępu do pól komponentu bean.
- Wartość true powoduje generowanie pól komponentu bean jako pól publicznych.
- Wartość false powoduje generowanie pól komponentu bean jako pól chronionych, do których dostęp jest możliwy
za pomocą metod pobierających i ustawiających.
- importAnnotations
- Określa, czy mają być importowane adnotacje pureQuery. Dopuszczalne wartości
to:
- import com.ibm.pdq.annotation.Column;
- import com.ibm.pdq.annotation.Table;
- Komponent bean musi importować adnotację Table, jeśli nazwa komponentu bean nie jest zgodna z nazwą
odpowiadającego mu obiektu bazy danych.
- Komponent bean musi importować również adnotację Column, jeśli jedna lub więcej nazw pól w komponencie bean nie jest
zgodna z odpowiadającymi im kolumnami lub parametrami w obiekcie bazy danych.
- Komponent bean może importować adnotację Id, jeśli ta adnotacja ma być wykorzystywana do wskazywania kolumn,
które są częścią klucza podstawowego.
- importTypes
- Określa, które typy języka Java mają być importowane. Zaimportować trzeba wszystkie typy, które nie są częścią pakietu java.lang.*.
- name
- Określa nazwę komponentu bean pureQuery.
- superClass
- Określa nadklasę komponentu bean pureQuery, jeśli zostanie ona określona w kreatorze
Generowanie kodu pureQuery dla tabeli.
- fieldinfos
- Znaczniki tego znacznika opisują, w jaki sposób kolumny w tabeli wynikowej są odwzorowywane na pola
w komponencie bean pureQuery dla pojedynczej tabeli wynikowej.
- field
- Znaczniki tego znacznika opisują, w jaki sposób konkretna kolumna w tabeli wynikowej jest odwzorowywana
na konkretne pole komponentu bean pureQuery dla pojedynczej tabeli wynikowej.
- column
- Atrybuty tego znacznika opisują kolumnę w tabeli wynikowej.
- name
- Określa nazwę kolumny.
- parameter
- Atrybuty tego znacznika opisują konkretne pole komponentu bean pureQuery dla
pojedynczej tabeli wynikowej.
- javaType
- Określa typ danych Java
dla pola komponentu bean pureQuery dla pojedynczej tabeli wynikowej.
- name
- Określa nazwę pola.