Ten dokument XML stanowi przykładowe dane wejściowe dla transformacji JET z szablonami GenTableBean.jet,
GenTableInlineSample.jet, GenTableInterface.jet, GenTableInterfaceJUnit.jet
i GenTableInterfaceTest.jet.
Dokument XML opisuje tabelę STAFF w bazie danych SAMPLE produktu DB2 for Linux, UNIX,
and Windows.
<?xml version="1.0" encoding="UTF-8"?>
<genCodeData>
<selection genInlineSample="true" genInterface="true" genInterfaceTest="true" genTableBean="true"
genAlwaysJUnit="false" genIncludeConn="false" genType="genFromTable"/>
<connection name="SAMPLE1"/>
<target package="myPackage" project="MyProject" srcContainer="src"/>
<table includeSchemaInSQL="true" name="STAFF" schema="MYSCHEMA">
<resultSet>
<bean genPublicFields="true" importAnnotations="import com.ibm.pdq.annotation.Column;
import com.ibm.pdq.annotation.Table;import com.ibm.pdq.annotation.Id;"
importTypes="import java.math.BigDecimal;" name="Personnel" superClass=""/>
<fieldInfos>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="COMM"/>
<parameter javaType="BigDecimal" name="comm"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="DEPT"/>
<parameter javaType="int" name="dept"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="true" name="ID"/>
<parameter javaType="int" name="serial"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="JOB"/>
<parameter javaType="String" name="job"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="NAME"/>
<parameter javaType="String" name="name"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="SALARY"/>
<parameter javaType="BigDecimal" name="salary"/>
</field>
<field>
<column isAlwaysGenCol="false" isIdentityCol="false" isKey="false" name="YEARS"/>
<parameter javaType="int" name="years"/>
</field>
</fieldInfos>
</resultSet>
<codeNames importTypes="import java.math.BigDecimal;" inlineSampleName="PersonnelInlineTest"
interfaceMerge="true" interfaceName="PersonnelData" interfaceTestName="PersonnelDataTest"/>
<sqlStatements createByObject="true" createByParameters="true" deleteByObject="true"
deleteByParameters="true" selectAll="true" selectByObject="true" selectByParameters="true"
updateByObject="true" updateByParameters="true" useAsteriskForAllColumns="true"/>
</table>
</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).
- genTableBean
- Określa, czy generować komponent bean pureQuery, który jest oparty na definicji obiektu bazy danych
(aliasu, zmaterializowanej tabeli zapytania, tabeli lub widoku).
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 tabeli.
- 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.
- tabela
- Atrybuty tego znacznika wyznaczają obiekt bazy danych (alias, zmaterializowaną
tabelę zapytania, tabelę lub widok), na podstawie którego ma być generowany kod
pureQuery, a także, w jaki sposób formatować nazwę obiektu bazy danych 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ę obiektu bazy danych.
- schema
- Określa schemat obiektu bazy danych.
- result set
- Znaczniki, które zawiera ten znacznik, opisują zawartość generowanego komponentu bean
pureQuery, jeśli atrybut genTableBean znacznika <selection> ma wartość "false".
- bean
- 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.
- importAnnotations
- Określa, czy mają być importowane adnotacje pureQuery. Dopuszczalne wartości
to:
- import com.ibm.pdq.annotation.Column;
- import com.ibm.pdq.annotation.Id;
- import com.ibm.pdq.annotation.GeneratedKey;
- 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.
- 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 w tym znaczniku opisują, w jaki sposób kolumny obiektu bazy danych są odwzorowywane na pola
komponentu bean pureQuery.
- field
- Znaczniki w tym znaczniku opisują, w jaki sposób konkretna kolumna w obiekcie bazy danych jest odwzorowywana
na konkretne pole w komponencie bean pureQuery.
- column
- Atrybuty tego znacznika opisują kolumnę w obiekcie bazy danych.
- isAlwaysGenCol
- Określa, czy zawsze są generowane wartości w kolumnie. Dopuszczalne wartości to true (tak) i false (nie).
- isIdentityCol
- Określa, czy kolumna jest kolumną tożsamości. Dopuszczalne wartości to true (tak) i false (nie).
- isKey
- Określa, czy kolumna jest kolumną klucza. Dopuszczalne wartości to true (tak) i false (nie).
- name
- Określa nazwę kolumny.
- 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ą.
- sqlStatements
- Jeśli użytkownik wybierze generowanie interfejsu dla stylu programowania metody z adnotacją, ten znacznik
opisuje, które instrukcje SQL mają być generowane i dla których mają być tworzone metody z adnotacją.
- createByObject
- Generuje instrukcję INSERT, która wstawia wiersz do obiektu bazy danych.
Wartości są przekazywane w obiekcie Java.
- createByParameters
- Generuje instrukcję INSERT, która wstawia wiersz do obiektu bazy danych.
Każda wartość jest przekazywana jako osobny parametr.
- deleteByObject
- Generuje instrukcję DELETE, która usuwa wiersz z obiektu bazy danych, gdzie klucz podstawowy
jest równy pewnej wartości. Wartość klucza podstawowego jest przekazywana w obiekcie.
- deleteByParameters
- Generuje instrukcję DELETE, która usuwa wiersz z obiektu bazy danych, gdzie klucz podstawowy
jest równy pewnej wartości. Wartość klucza podstawowego jest przekazywana jako jeden lub więcej parametrów. Jeśli nie ma klucza podstawowego, jako klucz zostaną użyte wszystkie kolumny.
- selectAll
- Generuje instrukcję SELECT, która zwraca wszystkie wiersze z obiektu bazy danych.
- selectByObject
- Generuje instrukcję SELECT, która zwraca wszystkie wiersze z obiektu bazy danych, gdzie klucz
podstawowy jest równy pewnej wartości. Wartość ta jest przekazywana w obiekcie. Jeśli obiekt bazy danych nie ma klucza podstawowego, jako klucz wykorzystywane są wszystkie kolumny.
- selectByParameters
- Generuje instrukcję SELECT, która zwraca wiersz z obiektu bazy danych, gdzie klucz
podstawowy jest równy pewnej wartości. Każda wartość jest przekazywana jako osobny parametr. Jeśli obiekt bazy danych nie ma klucza podstawowego, jako klucz wykorzystywane są wszystkie kolumny.
- updateByObject
- Generuje instrukcję UPDATE, która zmienia jedną lub więcej wartości w wierszu obiektu
bazy danych. Wartości są przekazywane w obiekcie.
- updateByParameters
- Generuje instrukcję UPDATE, która zmienia jedną lub więcej wartości w wierszu obiektu
bazy danych. Każda wartość jest przekazywana jako osobny parametr. Wartości klucza podstawowego są przekazywane łącznie z nowymi wartościami zaktualizowanych kolumn.
- useAsteriskForAllColumns
- Określa, że zamiast nazw kolumn w instrukcjach SELECT ma być wykorzystywana gwiazdka, która wybiera
wszystkie kolumny w obiekcie bazy danych.