Exemple d'entrée XML pour les modèles JET pureQuery des procédures mémorisées

Ce document XML est un exemple d'entrée dans les transformations JET avec les modèles GenProcedureInlineSample.jet, GenProcedureInlineJunit.jet, GenProcedureInterface.jet, GenProcedureInterfaceJunit.jet, GenProcedureInterfaceTest.jet ou GenProcedureParmBean.jet.

Le document XML décrit la procédure mémorisée salaryGreater, qui accepte le paramètre IN salvalue. La procédure mémorisée renvoie un ensemble de résultats contenant toutes les lignes de la table STAFF où la valeur de SALARY est supérieure à la valeur du paramètre IN.

<?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
Les attributs de cette balise décrivent le code généré pour un seul ensemble de résultats.
genBean
Indique si un bean doit être créé ou si la balise bean décrit un bean existant.
true
Un bean est créé.
false
La balise bean décrit un bean existant.
genPublicFields
Indique le niveau d'accès des propriétés du bean.
  • Une valeur true permet de générer des propriétés de bean publiques.
  • Une valeur false permet de générer des propriétés de bean protégées accessibles par le biais des méthodes get et set.
importAnnotations
Indique si les annotations pureQuery doivent être importées. Les valeurs admises sont les suivantes :
  • import com.ibm.pdq.annotation.Column;
  • import com.ibm.pdq.annotation.Table;
  • Le bean doit importer l'annotation Table si le nom du bean ne correspond pas au nom de l'objet de base de données correspondant.
  • Le bean doit également importer l'annotation Colonne si un ou plusieurs noms de propriétés dans les beans ne correspondent pas aux colonnes ou aux paramètres associés dans l'objet de base de données.
  • Le bean peut importer l'annotation Id si vous souhaitez utiliser cette annotation pour afficher les colonnes appartenant à une clé primaire.
importTypes
Indique quels types Java importer. Vous devez importer tous les types qui ne font pas partie du package java.lang.*.
name
Spécifie le nom du bean.
package
Indique le nom du package Java dans lequel le code généré sera placé.
srcContainer
Indique le dossier du projet dans lequel le code généré sera placé.
superClass
Indique la superclasse du bean.
column
Les attributs de cette balise décrivent une colonne dans l'objet de base de données.
colLength
Spécifie la longueur de la colonne.
colType
Spécifie le type de données pour les valeurs de la colonne.
isAlwaysGenCol
Indique si les valeurs affichées dans la colonne sont toujours générées. Les valeurs admises sont true et false.
isIdentityCol
Indique si la colonne est une colonne d'identité. Les valeurs admises sont true et false.
isKey
Indique si la colonne est une colonne de clé. Les valeurs admises sont true et false.
isUniqueColName
Indique si le nom de la colonne est unique. Les valeurs admises sont true et false.
isUserDefinedType
Indique si le type de la colonne est défini par l'utilisateur. Les valeurs admises sont true et false.
name
Spécifie le nom de la colonne.
tableName
Spécifie le nom de la table à laquelle la colonne appartient.
connection
L'attribut de cette balise indique le nom de la connexion de base de données à utiliser.
name
Indique le nom de la connexion de base de données à utiliser.
field
Les balises au sein de cette balise décrivent la façon dont une colonne spécifique de l'ensemble de résultats correspond à une propriété spécifique du bean pour un seul ensemble de résultats.
fieldInfos
Les balises au sein de cette balise décrivent la façon dont les colonnes de l'ensemble de résultats correspondent aux propriétés du bean pour un seul ensemble de résultats.
interface
importAnnotations
Spécifie les annotations pureQuery à importer dans l'interface générée. Les valeurs admises sont les suivantes :
  • 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
Indique quels types Java importer. Vous devez importer tous les types qui ne font pas partie du package java.lang.*.
interfaceMerge
Si le nom spécifié pour l'interface à générer correspond au nom d'une classe Java qui existe déjà dans le projet Java cible, indique que le contenu de la classe existante doit être fusionné avec l'interface générée.
interfaceName
Indique le nom de l'interface à générer pour le style de programmation méthode annotée.
package
Indique le nom du package Java dans lequel le code généré sera placé.
srcContainer
Indique le dossier du projet dans lequel le code généré sera placé.
parameter
Les attributs de cette balise décrivent une propriété spécifique du bean.
javaType
Indique le type de données Java pour la propriété du bean.
name
Spécifie le nom de la propriété.
parameterMode
Constante qui identifie le paramètre en tant que paramètre IN, INOUT ou OUT. Cette constante est définie dans le paramètre parameterMetadata de l'interface JDBC.
parameterType
Indique le type de SQL qui correspond au type Java du paramètre.
procedure
Les attributs de cette balise désignent la procédure mémorisée à partir de laquelle générer le code pureQuery, ainsi que la manière de formater le nom de la procédure mémorisée dans les instructions SQL obtenues.
handlerClass
Si vous voulez utiliser votre propre classe CallHandlerWithParameters pour le traitement des résultats de la procédure mémorisée, spécifiez le nom de la classe et le module. Pour des informations sur les classes CallHandlerWithParameter, voir L'interface CallHandlerWithParameters<CAL>.
includeSchemaInSQL
Indique si le schéma doit être inclus dans les instructions SQL générées. Les valeurs admises sont true et false.
name
Indique le nom de la procédure mémorisée.
schema
Indique le schéma de la procédure mémorisée.
procParameters
Les attributs de cette balise décrivent le bean généré.
genBean
Indique si un bean doit être créé ou si la balise procParameters décrit un bean existant.
true
Un bean est créé.
false
La balise bean décrit un bean existant.
genPublicFields
Indique le niveau d'accès des propriétés du bean.
  • Une valeur true permet de générer des propriétés de bean publiques.
  • Une valeur false permet de générer des propriétés de bean protégées accessibles par le biais des méthodes get et set.
importTypes
Indique quels types Java importer.
name
Spécifie le nom du bean.
package
Indique le nom du package Java dans lequel le code généré sera placé.
srcContainer
Indique le dossier du projet dans lequel le code généré sera placé.
superClass
Indique la superclasse du bean.
results
Les balises au sein de cette balise décrivent les beans à générer pour chaque ensemble de résultats pouvant être renvoyé par la procédure mémorisée.
resultSet
Les balises au sein de cette balise décrivent le bean généré pour un ensemble de résultats.
selection
Les attributs de cette balise décrivent quel code pureQuery est généré à l'aide de ce code XML, ainsi que l'assistant qui lance la génération du code.
genAlwaysJUnit
Indique si des classes de test doivent être générées en tant que scénarios de test JUnit. Les valeurs admises sont true et false.
genIncludeConn
Indique si des informations sur la connexion de base de données doivent être incluses dans les classes de test générées. Les valeurs admises sont true et false.
genInlineSample
Indique si une classe de test utilisant le style de programmation en ligne doit être générée. Les valeurs admises sont true et false.
genInterface
Indique s'il faut générer une interface qui utilise le style de programmation méthode annotée. Les valeurs admises sont true et false.
genInterfaceTest
Indique si une classe de test qui appelle les méthodes dans une implémentation de l'interface générée doit être générée. Les valeurs admises sont true et false.
genSampleUtil
Indique qu'une classe qui contient des méthodes statiques appelées par les classes de test lorsqu'elles sont exécutées est générée. Ces méthodes affichent les résultats de l'exécution des classes de test dans la vue de la console. Cette classe contient également du code permettant d'établir des connexions de base de données pour les classes de test.
genType
Indique que l'assistant Génération du code pureQuery à partir d'une procédure mémorisée lance la génération de code.
testCode
importTypes
Indique quels types Java importer. Vous devez importer tous les types qui ne font pas partie du package java.lang.*.
inlineSampleName
Spécifie le nom à attribuer à la classe de test générée pour le style de programmation en ligne.
interfaceTestName
Indique le nom de la classe de test à générer pour le style de programmation méthode annotée.
package
Indique le nom du package Java dans lequel le code généré sera placé.
srcContainer
Indique le dossier du projet dans lequel le code généré sera placé.

Commentaires