XML-Beispieleingabe für die pureQuery JET-Schablonen für gespeicherte Prozeduren

Dieses XML-Dokument ist Beispieleingabe für JET-Umsetzungen mit der Schablone GenProcedureInlineSample.jet, GenProcedureInlineJunit.jet, GenProcedureInterface.jet, GenProcedureInterfaceJunit.jet, GenProcedureInterfaceTest.jet oder GenProcedureParmBean.jet.

Die XML beschreibt die gespeicherte Prozedur salaryGreater, die den Wert "salvalue" für den Parameter IN annimmt. Die gespeicherte Prozedur gibt eine Ergebnismenge zurück, die alle Zeilen aus der Tabelle STAFF enthält, in denen SALARY größer als der Wert des Parameters IN ist.

<?xml version="1.0" encoding="UTF-8"?>
<genCodeData>
	<selection genAlwaysJUnit="false" genIncludeConn="false"
		genInlineSample="true" genInterface="true" genInterfaceTest="true"
		genSampleUtil="false" genType="genFromProcedure" />
	<connection name="SAMPLE1" />
	<procedure handlerClass="" includeSchemaInSQL="false"
		name="SALARY_GREATER" schema="MYSCHEMA">
		<procParameters genBean="true" genPublicFields="false"
			importTypes="import java.math.BigDecimal;" name="Salary_greaterParam"
			package="myPackage" srcContainer="MyProject/src"
			superClass="java.lang.Object">
			<parameter javaType="BigDecimal" name="salvalue" parameterMode="1" parameterType="DECIMAL"/>
		</procParameters>
		<interface importAnnotations=""
			importTypes="import java.math.BigDecimal;" interfaceMerge="false"
			interfaceName="Salary_greaterData" package="myPackage"
			srcContainer="MyProject/src" />
		<testCode
			importTypes="import java.math.BigDecimal;import java.util.Iterator;"
			inlineSampleName="Salary_greaterInlineSample"
			interfaceTestName="Salary_greaterDataTest" package="myPackage"
			srcContainer="MyProject/src" />
		<results>
			<resultSet>
				<bean genBean="true" genPublicFields="false"
					importAnnotations="" importTypes="import java.math.BigDecimal;"
					name="Salary_greater" package="myPackage"
					srcContainer="MyProject/src" superClass="" />
				<fieldInfos>
					<field>
						<column colLength="" colType="SMALLINT"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="ID"
							tableName="SALARY_GREATER" />
						<parameter accessor="getId()" javaType="short"
							name="id" propertyName="id" />
					</field>
					<field>
						<column colLength="" colType="VARCHAR"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="NAME"
							tableName="SALARY_GREATER" />
						<parameter accessor="getName()"
							javaType="String" name="name" propertyName="name" />
					</field>
					<field>
						<column colLength="" colType="SMALLINT"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="DEPT"
							tableName="SALARY_GREATER" />
						<parameter accessor="getDept()" javaType="short"
							name="dept" propertyName="dept" />
					</field>
					<field>
						<column colLength="" colType="CHAR"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="JOB"
							tableName="SALARY_GREATER" />
						<parameter accessor="getJob()" javaType="String"
							name="job" propertyName="job" />
					</field>
					<field>
						<column colLength="" colType="SMALLINT"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="YEARS"
							tableName="SALARY_GREATER" />
						<parameter accessor="getYears()"
							javaType="short" name="years" propertyName="years" />
					</field>
					<field>
						<column colLength="" colType="DECIMAL"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="SALARY"
							tableName="SALARY_GREATER" />
						<parameter accessor="getSalary()"
							javaType="BigDecimal" name="salary" propertyName="salary" />
					</field>
					<field>
						<column colLength="" colType="DECIMAL"
							isAlwaysGenCol="false" isIdentityCol="false" isKey="false"
							isUniqueColName="true" isUserDefinedType="false" name="COMM"
							tableName="SALARY_GREATER" />
						<parameter accessor="getComm()"
							javaType="BigDecimal" name="comm" propertyName="comm" />
					</field>
				</fieldInfos>
			</resultSet>
		</results>
	</procedure>
</genCodeData>
bean
Die Attribute dieses Tags beschreiben die generierte Bean für eine einzelne Ergebnismenge.
genBean
Gibt an, ob eine neue Bean erstellt werden soll oder ob der Tag bean eine vorhandene Bean beschreibt.
true
Erstellt eine neue Bean.
false
Der Tag bean beschreibt eine vorhandene Bean.
genPublicFields
Gibt die Zugriffsebene der Eigenschaften der Bean an.
  • Bei Verwendung des Werts 'true' werden die Eigenschaften der Bean als öffentlich generiert.
  • Bei Verwendung des Werts 'false' werden die Eigenschaften der Bean als geschützt generiert. Der Zugriff auf sie wird über GET- und SET-Methoden ermöglicht.
importAnnotations
Gibt an, ob die pureQuery-Annotationen importiert werden sollen. Folgende Werte sind gültig:
  • mport com.ibm.pdq.annotation.Column;
  • import com.ibm.pdq.annotation.Table;
  • Die Bean muss die Tabellenannotation (Table) importieren, wenn der Name der Bean nicht mit dem Namen des entsprechenden Datenobjekts übereinstimmt.
  • Die Bean muss die Spaltenannotation (Column) auch importieren, wenn mindestens ein Name der Eigenschaften in den Beans nicht mit der entsprechenden Spalte oder dem entsprechenden Parameter im Datenbankobjekt übereinstimmt.
  • Die Bean kann die ID-Annotation (Id) importieren, wenn Sie diese Annotation verwenden wollen, um anzuzeigen, welche Spalten zum Primärschlüssel gehören.
importTypes
Gibt die zu importierenden Java-Typen an. Sie müssen alle Typen importieren, die nicht zum Paket java.lang.* gehören.
name
Gibt den Namen der Bean an.
package
Gibt den Namen des Java- Pakets an, in das der generierte Code eingefügt werden soll.
srcContainer
Gibt den Ordner in dem Projekt an, in das der generierte Code eingefügt werden soll.
superClass
Gibt die Superklasse der Bean an.
column
Die Attribute dieses Tags beschreiben eine Spalte im Datenbankobjekt.
colLength
Gibt die Länge der Spalte an.
colType
Gibt den Datentyp für die Werte in der Spalte an.
isAlwaysGenCol
Gibt an, ob die Werte in der Spalte immer generiert werden. Gültige Werte sind true und false.
isIdentityCol
Gibt an, ob die Spalte eine Identitätsspalte ist. Gültige Werte sind true und false.
isKey
Gibt an, ob die Spalte eine Schlüsselspalte ist. Gültige Werte sind true und false.
isUniqueColName
Gibt an, ob der Spaltenname eindeutig ist. Gültige Werte sind true und false.
isUserDefinedType
Gibt an, ob der Typ der Spalte benutzerdefiniert ist. Gültige Werte sind true und false.
name
Gibt den Namen der Spalte an.
tableName
Gibt den Namen der Tabelle an, zu der die Spalte gehört.
connection
Das Attribut dieses Tags gibt den Namen der zu verwendenden Datenbankverbindung an.
name
Gibt den Namen der zu verwendenden Datenbankverbindung an.
field
Die Tags in diesem Tag beschreiben, wie eine bestimmte Spalte in der Ergebnismenge einer bestimmten Eigenschaft der Bean für eine einzelne Ergebnismenge zugeordnet wird.
fieldInfos
Die Tags in diesem Tag beschreiben, wie Spalten in der Ergebnismenge den Eigenschaften der Bean für eine einzelne Ergebnismenge zugeordnet werden.
interface
importAnnotations
Gibt die pureQuery-Annotationen an, die in die generierte Schnittstelle importiert werden sollen. Folgende Werte sind gültig:
  • import com.ibm.pdq.annotation.Call;
  • import com.ibm.pdq.annotation.Select;
  • import com.ibm.pdq.annotation.Update;
  • import com.ibm.pdq.annotation.Handler;
importTypes
Gibt die zu importierenden Java-Typen an. Sie müssen alle Typen importieren, die nicht zum Paket java.lang.* gehören.
interfaceMerge
Stimmt der angegebene Name der zu generierenden Schnittstelle mit dem Namen der Java-Klasse überein, die im Java-Zielprojekt bereits vorhanden ist, wird hiermit angegeben, dass der Inhalt der vorhandenen Klasse mit der neu generierten Schnittstelle gemischt werden soll.
interfaceName
Gibt den Namen der Schnittstelle an, die für den Programmierstil der mit Annotationen versehenen Methode generiert werden soll.
package
Gibt den Namen des Java- Pakets an, in das der generierte Code eingefügt werden soll.
srcContainer
Gibt den Ordner in dem Projekt an, in das der generierte Code eingefügt werden soll.
parameter
Die Attribute dieses Tags beschreiben eine bestimmte Eigenschaft der Bean.
javaType
Gibt den Java-Datentyp für die Eigenschaft der Bean an.
name
Gibt den Namen der Eigenschaft an.
parameterMode
Die Konstante, die den Parameter als Parameter IN, INOUT oder OUT angibt. Die Konstante ist in der JDBC-Schnittstelle parameterMetadata definiert.
parameterType
Gibt den SQL-Typ an, der dem Java-Typ des Parameters entspricht.
procedure
Die Attribute dieses Tags geben die gespeicherte Prozedur an, aus der pureQuery-Code generiert werden soll, und wie der Name der gespeicherten Prozedur in den resultierenden SQL-Anweisungen formatiert werden soll.
handlerClass
Wenn Sie Ihre eigene CallHandlerWithParameters-Klasse für die Verarbeitung der Ergebnisse der gespeicherten Prozedur verwenden wollen, müssen Sie den Paket- und den Klassennamen angeben. Informationen zu CallHandlerWithParameter-Klassen finden Sie im Abschnitt zur Schnittstelle CallHandlerWithParameters<CAL>.
includeSchemaInSQL
Gibt an, ob das Schema in die generierten SQL-Anweisungen eingefügt werden soll. Gültige Werte sind true und false.
name
Gibt den Namen der gespeicherten Prozedur an.
schema
Gibt das Schema der gespeicherten Prozedur an.
procParameters
Die Attribute dieses Tags beschreiben die generierte Bean.
genBean
Gibt an, ob eine neue Bean erstellt werden soll oder ob der Tag procParameters eine vorhandene Bean beschreibt.
true
Erstellt eine neue Bean.
false
Der Tag bean beschreibt eine vorhandene Bean.
genPublicFields
Gibt die Zugriffsebene der Eigenschaften der Bean an.
  • Bei Verwendung des Werts 'true' werden die Eigenschaften der Bean als öffentlich generiert.
  • Bei Verwendung des Werts 'false' werden die Eigenschaften der Bean als geschützt generiert. Der Zugriff auf sie wird über GET- und SET-Methoden ermöglicht.
importTypes
Gibt die zu importierenden Java-Typen an.
name
Gibt den Namen der Bean an.
package
Gibt den Namen des Java- Pakets an, in das der generierte Code eingefügt werden soll.
srcContainer
Gibt den Ordner in dem Projekt an, in das der generierte Code eingefügt werden soll.
superClass
Gibt die Superklasse der Bean an.
results
Die Tags in diesem Tag beschreiben die Beans, die für jede Ergebnismenge generiert werden sollen, die die gespeicherte Prozedur zurückgeben kann.
resultSet
Die Tags in diesem Tag beschreiben die generierte Bean für eine einzelne Ergebnismenge.
selection
Die Attribute dieses Tags beschreiben, welcher pureQuery-Code mithilfe dieses XML-Codes generiert wird, sowie den Assistenten, der die Codegenerierung initiiert.
genAlwaysJUnit
Gibt an, ob Testklassen als JUnit-Anwendungsbeispiele generiert werden. Gültige Werte sind true und false.
genIncludeConn
Geben Sie an, ob in generierte Testklassen Informationen zur Datenbankverbindung aufgenommen werden sollen. Gültige Werte sind true und false.
genInlineSample
Gibt an, ob eine Testklasse generiert werden soll, die den integrierten Programmierstil verwendet. Gültige Werte sind true und false.
genInterface
Gibt an, ob eine Schnittstelle generiert werden soll, die den Programmierstil der mit Annotationen versehenen Methode verwendet. Gültige Werte sind true und false.
genInterfaceTest
Gibt an, ob eine Testklasse generiert werden soll, die die Methoden in einer Implementierung der generierten Schnittstelle aufruft. Gültige Werte sind true und false.
genSampleUtil
Gibt an, dass eine Klasse generiert wird, die statische Methoden enthält, die von den Testklassen bei ihrer Ausführung aufgerufen werden. Diese Methoden geben die Ergebnisse der Ausführung der Testklassen in der Konsolsicht aus. Diese Klasse enthält außerdem Code zum Herstellen von Datenbankverbindungen für die Testklassen.
genType
Gibt an, dass der Assistent pureQuery-Code aus gespeicherter Prozedur generieren die Codegenerierung einleitet.
testCode
importTypes
Gibt die zu importierenden Java-Typen an. Sie müssen alle Typen importieren, die nicht zum Paket java.lang.* gehören.
inlineSampleName
Gibt den Namen an, den die generierte Testklasse für den integrierten Programmierstil erhalten soll.
interfaceTestName
Gibt den Namen der Testklasse für den Programmierstil der mit Annotationen versehenen Methode an.
package
Gibt den Namen des Java- Pakets an, in das der generierte Code eingefügt werden soll.
srcContainer
Gibt den Ordner in dem Projekt an, in das der generierte Code eingefügt werden soll.

Feedback