A partir de varias sentencias SQL, se pueden generar objetos de acceso a datos o métodos en línea que utilizan código pureQuery. Las sentencias pueden estar en scripts SQL en el entorno de trabajo o en archivos
de script en el sistema de archivos.
Acerca de esta tarea
Según la configuración de la licencia, es posible que esta funcionalidad
no esté disponible. Puede trabajar con scripts SQL que se encuentren en proyectos
Java™ con pureQuery habilitado en la
perspectiva Java y en proyectos de desarrollo
de datos en la perspectiva Desarrollo de rutinas y SQL.
Puede trabajar con scripts
SQL abiertos en el editor de SQL y XQuery y también puede importar
sentencias SQL que se encuentren en archivos de script.
Un script
SQL puede contener una o varias sentencias SQL. El número de sentencias SQL que
un script contenga o el número de sentencias que seleccione determinará el asistente
que se utiliza para generar el código pureQuery. Para scripts que contienen una sola sentencia SQL y para scripts en los que se
selecciona una sola sentencia SQL,
consulte Generar código pureQuery a partir de una sentencia SQL.
Puede
utilizar este proceso para generar código pureQuery sólo para sentencias SELECT,
INSERT, UPDATE, DELETE o CALL válidas. Si un método prepareStatement() de JDBC de una sentencia SQL da errores, se muestra un recuadro de mensaje con el mensaje de error devuelto.
Procedimiento
Para generar
código pureQuery a partir de varias sentencias SQL:
- Abra el asistente Generar código pureQuery de sentencias SQL realizando
uno de los siguientes conjuntos de pasos:
Opción |
Descripción |
Para las sentencias SQL que se encuentran en un script SQL abierto en el
editor de SQL y XQuery: |
- Opcional: si desea generar código pureQuery sólo para algunas sentencias
SQL en el script, seleccione cada una de las sentencias completamente. Si no selecciona ninguna sentencia, se genera código pureQuery para todas
las sentencias SQL.
- Pulse con el botón derecho del ratón las sentencias SQL seleccionadas o, si no ha seleccionado ninguna
sentencia, pulse con el botón derecho del ratón en cualquier lugar del editor, y después seleccione Generar código
pureQuery.
|
Para sentencias SQL que se encuentran en un script SQL de un proyecto Java con pureQuery habilitado: |
- Vaya a la perspectiva Java.
- Pulse con el botón derecho del ratón el archivo .sql en el proyecto que contiene las sentencias SQL y
luego seleccione Generar código pureQuery.
|
Para sentencias SQL que se encuentran en un script SQL de un proyecto de desarrollo de datos: |
- Cambie a la perspectiva Desarrollo de rutinas y SQL
- Expanda la carpeta Scripts SQL del proyecto.
- Pulse con el botón derecho del ratón el script que contiene las sentencias SQL y, a continuación,
seleccione Generar código pureQuery.
|
Para sentencias SQL que se encuentran en un archivo de script del sistema de archivos: |
- Seleccione .
- En el asistente de Nuevo, expanda el nodo Datos,
seleccione Interfaz de método anotado de pureQuery y, después,
pulse Siguiente.
|
- Especifique información en la página Generar código pureQuery y pulse Siguiente. Si ha abierto el asistente desde un script SQL del entorno de trabajo,
la lista Sentencias de la página Sentencias SQL está llena
con las sentencias SQL del script.
- Para importar sentencias SQL desde un archivo de script del sistema de archivos,
siga estos pasos:
- Especifique el terminador que las sentencias SQL del archivo utilizan.
- Pulse Importar, y seleccione el archivo de
script.
- Opcional: Para cambiar el nombre de un bean o un método de la lista, haga una
doble pulsación en el nombre que desea cambiar, y especifique el nuevo nombre. Si cambia el nombre de un bean, el nombre predeterminado de su método
correspondiente se actualiza con el nuevo nombre de bean.
- Opcional: Si tiene una sentencia SELECT de SQL, revise y edite la información de bean
que se va a generar pulsando la sentencia SELECT en la lista y pulsando Detalles.
- Opcional: Si tiene una sentencia CALL de SQL, revise y edite el manejador de llamadas personalizado
que se va a utilizar en el método generado pulsando la sentencia CALL en la lista y, a continuación,
pulsando Detalles.
- Efectúe los pasos que le indique el asistente. Para ver información sobre los campos del asistente, pulse F1.
- Pulse Finalizar para generar los archivos que ha especificado.
Resultados
Al generar código pureQuery, el entorno de trabajo crea un bean que puede utilizar para acceder a la base de datos. Por ejemplo, puede generar código desde una sentencia UPDATE o SELECT. Al generar código desde una sentencia
SELECT, el entorno de trabajo crea un bean que puede utilizar para mantener los
resultados de la consulta.
Si no utiliza cláusulas AS en sentencias SELECT que producen
uniones, o que contienen columnas calculadas, los resultados de la consulta pueden
contener columnas con nombres que no son exclusivos. Si el entorno de trabajo
puede resolver este problema al generar un bean para representar los resultados
de la consulta dependerá del tipo de base de datos que la aplicación utiliza.
- DB2 para Linux®, UNIX®
y Windows®; DB2 para z/OS; Informix Dynamic Server: el
entorno de trabajo utiliza la anotación @Column en las propiedades que se correlacionan con las columnas que tienen el
mismo nombre que una o varias columnas.
Por
ejemplo, suponga que la aplicación ejecuta la siguiente consulta
simple:
select a.col1, b.col1 from a, b where a.id=b.id;
Los métodos
set() para las
propiedades correspondientes de los beans que contienen los resultados de la consulta
necesitan anotaciones
@Column que proporcionen el nombre de la tabla en
la que aparecen las dos columnas de
id:
public class JoinExample{
private int a_id;
private int b_id;
@Column (name="id", table="a")
public void setA_id (int a_id)
{
this.a_id = a_id;
}
public int getA_id ()
{
return a_id;
}
@Column (name="id", table="b")
public void setB_id (int b_id)
{
this.b_id = b_id;
}
public int getB_id ()
{
return b_id;
}
}
- Oracle: el entorno de trabajo no utiliza el atributo table de la anotación
@Column para correlacionar columnas problemáticas con propiedades del bean. Debe correlacionarlas
de una de estas maneras:
- Utilice la cláusula AS de la sentencia SELECT para asignar nombres exclusivos a las columnas
de resultados de la consulta.
- Utilice un RowHandler que pueda trabajar con columnas de resultados de la consulta por sus números
de índice, en lugar de por sus nombres. Consulte Interfaz RowHandler <ROW>.