Puede generar código pureQuery a partir de una única sentencia SQL.
La sentencia puede ser una serie SQL de código Java™,
un script SQL que contenga una única sentencia SQL, o parte de un script SQL.
Acerca de esta tarea
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. También puede trabajar con scripts abiertos en el editor de SQL y
XQuery.
Puede utilizar este proceso para generar código pureQuery sólo para
una sentencia SELECT, INSERT, UPDATE, DELETE o CALL válida.
Si un método prepareStatement() de JDBC de la sentencia SQL da errores, se muestra un recuadro de mensaje con el mensaje de error devuelto.
Si desea generar
código a partir de más de una sentencia SQL,
consulte Generación de código pureQuery a partir de varias sentencias SQL.
Procedimiento
para
generar código pureQuery desde una única sentencia SQL:
- Abra el asistente para Generar código pureQuery a partir de una sentencia
SQL siguiendo uno de los conjuntos de pasos siguientes:
Opción |
Descripción |
Para una serie SQL de código Java: |
- Vaya a la perspectiva Java.
- Abra el archivo .java que contiene la serie SQL en el editor Java.
- En el editor, coloque el cursor de texto dentro del StringLiteral
de una sentencia SELECT, INSERT, UPDATE, DELETE o CALL, pulse con el botón derecho del ratón y
luego seleccione Generar código pureQuery.
Si se abre
el asistente para Generar código pureQuery a partir de una tabla,
el cursor de texto no debe estar colocado en un StringLiteral
o el cursor de texto no está colocado en uno de los tipos específicos de
sentencias SQL.
|
Para una sentencia SQL de un script SQL abierto en el editor de
SQL y XQuery: |
- En el editor, seleccione toda una sentencia SELECT, INSERT, UPDATE, DELETE
o CALL.
- Pulse con el botón derecho del ratón la sentencia seleccionada y, a continuación, seleccione Generar
código pureQuery.
|
Para una sentencia SQL de 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 que contiene la sentencia SELECT,
INSERT, UPDATE, DELETE o CALL de SQL y, a continuación, seleccione Generar
código pureQuery.
|
Para una sentencia SQL de 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 la sentencia SELECT, INSERT,
UPDATE, DELETE o CALL de SQL y, a continuación, seleccione Generar código
pureQuery.
|
Si el asistente no se abre y se visualiza un recuadro de mensaje,
revise el mensaje de error para determinar la causa de que la sentencia SQL
no sea válida.
- 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>.