Ejemplo de entrada XML para las plantillas JET de pureQuery de procedimientos almacenados

Este documento XML es un ejemplo de entrada para transformaciones JET con las plantillas GenProcedureInlineSample.jet, GenProcedureInlineJunit.jet, GenProcedureInterface.jet, GenProcedureInterfaceJunit.jet, GenProcedureInterfaceTest.jet o GenProcedureParmBean.jet.

El XML describe el procedimiento almacenado salaryGreater, que toma el parámetro IN salvalue. El procedimiento almacenado devuelve un conjunto de resultados que contiene todas las filas de la tabla STAFF donde SALARY es mayor que el valor del parámetro 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
Los atributos de esta etiqueta describen el bean generado para un único conjunto de resultados.
genBean
Especifica si se debe crear un nuevo bean o si la etiqueta bean describe un bean ya existente.
verdadero
Crear un bean nuevo.
falso
La etiqueta bean describe un bean ya existente.
genPublicFields
Especifica el nivel de acceso de las propiedades del bean.
  • El valor true genera las propiedades del bean como públicas.
  • El valor false genera las propiedades del bean como protegidas y permite el acceso a ellas mediante los métodos get y set.
importAnnotations
Especifica si se deben importar las anotaciones de pureQuery. Los valores aceptables son los siguientes:
  • mport com.ibm.pdq.annotation.Column;
  • import com.ibm.pdq.annotation.Table;
  • El bean debe importar la anotación de tabla si el nombre del bean no coincide con el nombre correspondiente del objeto de base de datos.
  • El bean también debe importar la anotación de columna si uno o varios nombres de las propiedades de los beans no coinciden con sus correspondientes columnas o parámetros en el objeto de base de datos.
  • El bean puede importar la anotación de ID si desea utilizar esta anotación para mostrar las columnas que forman parte de una clave primaria.
importTypes
Especifica qué tipos de Java™ se deben importar. Debe importar todos los tipos que no forman parte del paquete java.lang.*.
name
Especifica el nombre del bean.
package
Especifica el nombre del paquete Java en el que se colocará el código generado.
srcContainer
Especifica la carpeta del proyecto en la que se colocará el código generado.
superClass
Especifica la superclase del bean.
column
Los atributos de esta etiqueta describen una columna en el objeto de base de datos.
colLength
Especifica la longitud de la columna.
colType
Especifica el tipo de datos para los valores de la columna.
isAlwaysGenCol
Especifica si los valores de la columna se generan siempre. Los valores aceptables son true y false.
isIdentityCol
Especifica si la columna es una columna de identidad. Los valores aceptables son true y false.
isKey
Especifica si la columna es una columna de clave. Los valores aceptables son true y false.
isUniqueColName
Especifica si el nombre de la columna es exclusivo. Los valores aceptables son true y false.
isUserDefinedType
Especifica si el tipo de columna está definido por el usuario. Los valores aceptables son true y false.
name
Especifica el nombre de la columna.
tableName
Especifica el nombre de la tabla a la que pertenece la columna.
connection
El atributo de esta etiqueta especifica el nombre de la conexión de base de datos que se utilizará.
name
Especifica el nombre de la conexión de base de datos que se utilizará.
field
Las etiquetas dentro de esta etiqueta describen cómo una determinada columna del conjunto de resultados se correlaciona con una propiedad determinada del bean para un único conjunto de resultados.
fieldInfos
Las etiquetas dentro de esta etiqueta describen cómo las columnas del conjunto de resultados se correlacionan con las propiedades del bean para un único conjunto de resultados.
interface
importAnnotations
Especifica las anotaciones de pureQuery que se importarán a la interfaz generada. Los valores aceptables son los siguientes:
  • 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
Especifica qué tipos de Java se deben importar. Debe importar todos los tipos que no forman parte del paquete java.lang.*.
interfaceMerge
Si el nombre especificado de la interfaz que se generará coincide con el nombre de una clase Java que ya existe en el proyecto Java de destino, especifica que se debe fusionar el contenido de la clase existente con la nueva interfaz generada.
interfaceName
Especifica el nombre de la interfaz que se generará para el estilo de programación de método anotado.
package
Especifica el nombre del paquete Java en el que se colocará el código generado.
srcContainer
Especifica la carpeta del proyecto en la que se colocará el código generado.
parameter
Los atributos de esta etiqueta describen una propiedad determinada del bean.
javaType
Especifica el tipo de datos Java para la propiedad del bean.
name
Especifica el nombre de la propiedad.
parameterMode
La constante que identifica el parámetro como un parámetro IN, INOUT o OUT. La constante se define en la interfaz JDBC parameterMetadata.
parameterType
Especifica el tipo SQL que corresponde al tipo Java del parámetro.
procedure
Los atributos de esta etiqueta designan el procedimiento almacenado a partir del cual se debe generar el código pureQuery, así como la forma de formatear el nombre del procedimiento almacenado en las sentencias SQL resultantes.
handlerClass
Si desea utilizar su propia clase CallHandlerWithParameters para procesar los resultados del procedimiento almacenado, especifique el nombre de paquete y de clase. Para obtener información sobre las clases CallHandlerWithParameter, consulte Interfaz CallHandlerWithParameters<CAL>.
includeSchemaInSQL
Especifica si se debe incluir el esquema en las sentencias SQL generadas. Los valores aceptables son true y false.
name
Especifica el nombre del procedimiento almacenado.
Esquema
Especifica el esquema del procedimiento almacenado.
procParameters
Los atributos de esta etiqueta describen el bean generado.
genBean
Especifique si se debe crear un nuevo bean o si la etiqueta procParameters describe un bean existente.
verdadero
Crear un bean nuevo.
falso
La etiqueta bean describe un bean ya existente.
genPublicFields
Especifica el nivel de acceso de las propiedades del bean.
  • El valor true genera las propiedades del bean como públicas.
  • El valor false genera las propiedades del bean como protegidas y permite el acceso a ellas mediante los métodos get y set.
importTypes
Especifica qué tipos de Java se deben importar.
name
Especifica el nombre del bean.
package
Especifica el nombre del paquete Java en el que se colocará el código generado.
srcContainer
Especifica la carpeta del proyecto en la que se colocará el código generado.
superClass
Especifica la superclase del bean.
results
Las etiquetas dentro de esta etiqueta describen los beans que se deben generar para cada conjunto de resultados que el procedimiento almacenado puede devolver.
resultSet
Las etiquetas dentro de esta etiqueta describen el bean generado para un único conjunto de resultados.
selection
Los atributos de esta etiqueta describen el código pureQuery que se genera con la ayuda de este XML, así como el asistente que inicia la generación de código.
genAlwaysJUnit
Especifica si se deben generar clases de prueba como casos de prueba JUnit. Los valores aceptables son true y false.
genIncludeConn
Especifique si se debe incluir información acerca de la conexión de base de datos en las clases de prueba generadas. Los valores aceptables son true y false.
genInlineSample
Especifica si se debe generar una clase de prueba que utilice el estilo de programación incorporado. Los valores aceptables son true y false.
genInterface
Especifica si se debe generar una interfaz que utiliza el estilo de programación de método anotado. Los valores aceptables son true y false.
genInterfaceTest
Especifica si se debe generar una clase de prueba que invoque los métodos de una implementación de la interfaz generada. Los valores aceptables son true y false.
genSampleUtil
Especifica que se generará una clase que contenga métodos estáticos que se llamarán por las clases de prueba cuando se ejecuten. Estos métodos muestran en la vista Consola los resultados de ejecutar las clases de prueba. Esta clase también contiene código para establecer conexiones de base de datos para las clases de prueba.
genType
Especifica que el asistente para Generar código de pureQuery a partir de un procedimiento almacenado inicia la generación del código.
testCode
importTypes
Especifica qué tipos de Java se deben importar. Debe importar todos los tipos que no forman parte del paquete java.lang.*.
inlineSampleName
Especifica el nombre que se asignará a la clase de prueba generada para el estilo de programación incorporado.
interfaceTestName
Especifica el nombre de la clase de prueba para el estilo de programación de método anotado.
package
Especifica el nombre del paquete Java en el que se colocará el código generado.
srcContainer
Especifica la carpeta del proyecto en la que se colocará el código generado.

Comentarios