Przykładowy plik wejściowy XML dla szablonów JET pureQuery dla tabel lub widoków

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.
Zadania pokrewne
Tworzenie szablonów JET (Java Emitter Templates) środowiska EMFT (Eclipse Modeling Framework Technologies) do generowania niestandardowego kodu

Opinia