Ukázka vstupu XML pro šablony pureQuery JET pro tabulky či pohledy

Tento dokument XML je ukázkou vstupu pro transformace JET s šablonami GenTableBean.jet, GenTableInlineSample.jet, GenTableInterface.jet, GenTableInterfaceJUnit.jet a GenTableInterfaceTest.jet.

Kód XML popisuje tabulku STAFF v databázi SAMPLE pro databázové prostředí 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
Atributy této značky popisují, jaký kód pureQuery je generován s pomocí tohoto dokumentu XML, a dále průvodce, který inicializoval generování kódu.
genInlineSample
Určuje, zda má být generována testovací třída využívající styl programování s metodou inline. Přípustné hodnoty jsou truefalse.
genInterface
Určuje, zda má být generováno rozhraní využívající styl programování s anotovanými metodami. Přípustné hodnoty jsou truefalse.
genInterfaceTest
Určuje, zda má být generována testovací třída vyvolávající metody v nějaké implementaci generovaného rozhraní. Přípustné hodnoty jsou truefalse.
genTableBean
Určuje, zda má být generován objekt pureQuery založený na definici databázového objektu (alias, tabulka materializovaného dotazu, tabulka či pohled). Přípustné hodnoty jsou truefalse.
genAlwaysJUnit
Určuje, zda mají být generovány testovací třídy jako testovací prvky JUnit. Přípustné hodnoty jsou truefalse.
genIncludeConn
Určuje, zda má být v generovaných testovacích třídách zařazena informace o připojení databáze. Přípustné hodnoty jsou truefalse.
genType
Určuje, že generování kódu inicializuje průvodce Generovat kód pureQuery pro tabulku.
connection
Atribut této značky určuje název připojení k databázi, které má být použito.
name
Určuje název připojení k databázi, které má být použito.
target
Atributy této značky popisují, kde má být vytvořen generovaný kód v pracovním prostředí.
package
Určuje název balíku Java, kam má být umístěn generovaný kód.
project
Určuje název projektu Java, kam má být umístěn generovaný kód.
srcContainer
Určuje složku v rámci projektu, kam má být umístěn generovaný kód.
tabulka
Atributy této značky označují databázový objekt (alias, tabulka materializovaného dotazu, tabulka či pohled), ze kterého má být generován kód pureQuery, a dále způsob formátování názvu databázového objektu ve výsledných příkazech SQL.
includeSchemaInSQL
Určuje, zda má být v generovaných příkazech SQL zahrnuto schéma. Přípustné hodnoty jsou truefalse.
name
Určuje název databázového objektu.
schema
Určuje schéma databázového objektu.
result set
Značky obsažené v této značce popisují obsah generovaného objektu pureQuery bean, pokud jste ve značce <selection> nastavili atribut genTableBean na hodnotu "false".
bean
Atributy této značky popisují generovaný objekt pureQuery bean.
genPublicFields
Určuje úroveň přístupu pole objektu bean.
  • Hodnota true generuje pole objektu bean jako veřejná.
  • Hodnota false generuje pole objektu bean jako chráněná a umožňuje k nim přístup pomocí metod get a set.
importAnnotations
Určuje, zda mají být importovány anotace pureQuery. Přípustné jsou tyto hodnoty:
  • import com.ibm.pdq.annotation.Column;
  • import com.ibm.pdq.annotation.Id;
  • import com.ibm.pdq.annotation.GeneratedKey;
  • import com.ibm.pdq.annotation.Table;
  • Objekt bean musí importovat anotaci Table,pokud se název objektu bean neshoduje s názvem odpovídajícího databázového objektu.
  • Objekt bean musí také importovat anotaci Column, pokud se jeden nebo více názvů polí v objektech bean neshodují s odpovídajícími sloupci či parametry v databázovém objektu.
  • Objekt bean může importovat anotaci Id, pokud chcete tuto anotaci použít k zobrazení, které sloupce jsou součástí primárního klíče.
importTypes
Určuje importované typy Java.
name
Určuje název objektu pureQuery bean.
superClass
Určuje supertřídu objektu pureQuery bean, pokud byla nějaká určena pomocí průvodce Generovat kód pureQuery pro tabulku.
fieldinfos
Značky v rámci této značky popisují, jak jsou sloupce v databázovém objektu mapovány na pole objektu pureQuery bean.
field
Značky v rámci této značky popisují, jak je konkrétní sloupec v databázovém objektu mapován na konkrétní pole objektu pureQuery bean.
column
Atributy této značky popisují sloupec v databázovém objektu.
isAlwaysGenCol
Určuje, zda jsou hodnoty ve sloupci vždy generovány. Přípustné hodnoty jsou truefalse.
isIdentityCol
Určuje, zda jde o sloupec s identitou. Přípustné hodnoty jsou truefalse.
isKey
Určuje, zda jde o klíčový sloupec. Přípustné hodnoty jsou truefalse.
name
Určuje název sloupce.
parameter
Atributy této značky popisují určité pole objektu pureQuery bean.
javaType
Určuje datový typ Java pro pole objektu pureQuery bean.
name
Určuje název pole.
codeNames
Atributy této značky určují názvy používané pro generovaný kód pureQuery.
importTypes
Určuje importované typy Java. Je nutné importovat všechny typy, které nejsou součástí balíku java.lang.*.
inlineSampleName
Určuje název, který má být použit pro generovanou testovací třídu pro styl programování inline-method.
interfaceMerge
Určuje, že pokud se určený název rozhraní, které má být generováno, shoduje s názvem existující třídy Java v cílovém projektu Java, má být obsah existující třídy sloučen s nově generovaným rozhraním.
interfaceName
Určuje název rozhraní, které má být generováno, pro styl programování s anotovanými metodami.
interfaceTestName
Určuje název testovací třídy pro styl programování s anotovanými metodami.
sqlStatements
Pokud zvolíte generování rozhraní pro styl programování s anotovanými metodami, tato značka popisuje, pro které příkazy SQL budou generovány a vytvořeny anotované metody.
createByObject
Generuje příkaz INSERT, který vloží řádek do databázového objektu. Hodnoty jsou předávány v objektu Java.
createByParameters
Generuje příkaz INSERT, který vloží řádek do databázového objektu. Každá hodnota je předána jako samostatný parametr.
deleteByObject
Generuje příkaz DELETE, který odstraní řádek z databázového objektu. Řádek je určen podle primárního klíče, který se rovná určité hodnotě. Hodnota primárního klíče je předána v objektu.
deleteByParameters
Generuje příkaz DELETE, který odstraní řádek z databázového objektu. Řádek je určen podle primárního klíče, který se rovná určité hodnotě. Hodnota primárního klíče je předána jako jeden nebo několik parametrů. Pokud tabulka nemá primární klíč, použijí se jako parametry všechny sloupce.
selectAll
Generuje příkaz SELECT, který vrací všechny řádky z databázového objektu.
selectByObject
Generuje příkaz SELECT, který vrátí všechny řádky z databázového objektu, pro které se primární klíč rovná určité hodnotě. Hodnota je předávána v objektu. Pokud databázový objekt nemá primární klíč, jsou jako klíč použity všechny sloupce.
selectByParameters
Generuje příkaz SELECT, který vrátí řádek databázového objektu, pro který se primární klíč rovná určité hodnotě. Každá hodnota je předána jako samostatný parametr. Pokud databázový objekt nemá primární klíč, jsou jako klíč použity všechny sloupce.
updateByObject
Generuje příkaz UPDATE, který změní jednu nebo několik hodnot v řádku databázového objektu. Hodnoty jsou předávány v objektu.
updateByParameters
Generuje příkaz UPDATE, který změní jednu nebo několik hodnot v řádku databázového objektu. Každá hodnota je předána jako samostatný parametr. Hodnoty primárního klíče jsou předány spolu s novými hodnotami aktualizovaných sloupců.
useAsteriskForAllColumns
Určuje, že v příkazech SELECT má být místo názvů sloupců použita hvězdička, která zajistí výběr ze všech sloupců v databázovém objektu.
Související úlohy
Vytváření šablon JET (Java Emitter Templates) technologie EMFT (Eclipse Modeling Framework Technologies) pro generování přizpůsobeného kódu

Váš názor