Suministro de Consultas Eficaces

7 ?

Copyright © 2004, Oracle. Todos los derechos reservados.

Objetivos
Al finalizar esta lección, debería estar capacitado para: • Crear objetos de vista en modo experto • Utilizar consultas parametrizadas en objetos de vista • Implementar métodos personalizados • Crear un programa Java para probar métodos personalizados

Copyright © 2004, Oracle. Todos los derechos reservados.

Visión General

Objeto de vista CustomerOrders Customers ID Name Status Email Orders Id CustomerId OrderMode OrderTotal Método personalizado getFullName() select c.name, o.order_total from customers c, orders o where c.id=o.customer_id

Copyright © 2004, Oracle. Todos los derechos reservados.

Objetos de Vista de Modo Experto
Utilice las consultas de modo experto para crear objetos de vista personalizados. Seleccione el modo experto en el asistente Create View Object o en la categoría Query del editor View Object.

Copyright © 2004, Oracle. Todos los derechos reservados.

Asignación de Atributos en el Modo Experto
• En el modo normal, JDeveloper mantiene asociaciones entre los atributos de entidad y las columnas de la base de datos. La edición de una consulta en el modo experto puede invalidar estas asignaciones. Por ejemplo, edite la consulta CustomersView:
SELECT ID, NAME, initcap(STATUS) AS Status FROM CUSTOMERS

Durante el tiempo de ejecución, el valor del atributo Status no se corresponde con el valor de la tabla subyacente. Si se realiza una actualización con la vista se produce un error de bloqueo.
Copyright © 2004, Oracle. Todos los derechos reservados.

Mantenimiento de Asignaciones de Atributos en Modo Experto
• El usuario es responsable de mantener la asignación correcta entre los atributos de entidad y las columnas de la base de datos. Para el ejemplo de estado del cliente:
– Suprima el atributo Status del objeto de vista. – Cree un nuevo atributo calculado denominado Status.

Copyright © 2004, Oracle. Todos los derechos reservados.

Objetos de Vista Basados en SQL
• Un objeto de vista basado en SQL:
– No se basa en ningún objeto de entidad – No se puede utilizar para insertar, actualizar o suprimir

Utilice objetos de vista basados en SQL para vistas de sólo consulta, que no necesitan la funcionalidad de objetos de entidad. Los objetos de vista basados en SQL proporcionan un mejor rendimiento que los objetos de vista basados en entidad.

SELECT... OV

Copyright © 2004, Oracle. Todos los derechos reservados.

Creación de un Objeto de Vista Basado en SQL
• • Cree un objeto de vista sin seleccionar un objeto de entidad en el asistente View Object. Haga clic en el separador Query del asistente e introduzca la consulta en el campo proporcionado.

Copyright © 2004, Oracle. Todos los derechos reservados.

Implementación de Métodos Personalizados
Para agregar métodos personalizados a un objeto de vista, modifique el archivo ViewObjectRowImpl.java:
public String getCustFullName() { String custFullName = ""; custFullName = getCustFirstName() + " " + getCustLastName(); return custFullName; }

Copyright © 2004, Oracle. Todos los derechos reservados.

Visualización de Métodos en la Aplicación Cliente
Muestre los métodos de fila de cliente de objeto de vista: • getCustFirstName(), getCustLastName() • getCustFullName()

Copyright © 2004, Oracle. Todos los derechos reservados.

Creación de un Cliente de Prueba
Para crear un cliente de prueba: 1. Instancie el módulo de aplicación. 2. Instancie el objeto de vista. 3. Busque y manipule los datos según sea necesario. 4. Llame a los métodos personalizados según sea necesario. 5. Cierre el módulo de aplicación.

Copyright © 2004, Oracle. Todos los derechos reservados.

Instanciación de un Módulo de Aplicación
• • Instancie el módulo de aplicación mediante la clase Configuration. Utilice el nombre completo cualificado de la aplicación y el nombre de la configuración como argumentos.
// App module name = "model.OEModule"; // Configuration name = "OEModuleLocal";

String _am String _cf

// Create an instance of the AppModule ApplicationModule am = Configuration.createRootApplicationModule(_am,_cf);

Copyright © 2004, Oracle. Todos los derechos reservados.

Instanciación de un Objeto de Vista y Datos de Salida
• • • Utilice findViewObject() para instanciar el objeto de vista. Itere a través de Rowset. Muestre los datos con getAttribute().
while (vo.hasNext()) { CustomersViewRow row = (CustomersViewRow) vo.next(); System.out.println("Customer First Name is " + row.getAttribute("CustLastName)); } Configuration.releaseRootApplicationModule(am,true);
Copyright © 2004, Oracle. Todos los derechos reservados.

ViewObject vo = am.findViewObject("CustomersView");

Llamada a Métodos Personalizados
1. Recupere la fila de objeto de vista. 2. Llame a los métodos publicados en el objeto de vista.

System.out.println("Customer First Name: " + row_Cust.getCustFirstName()); System.out.println("Customer Last Name: " + row_Cust.getCustLastName()); System.out.println("Customer Full Name: " + row_Cust.getCustFullName());

Copyright © 2004, Oracle. Todos los derechos reservados.

Definición de Parámetros para la Cláusula Where
La cláusula where de una consulta de objeto de vista puede contener variables o parámetros. • Proporciona flexibilidad durante el tiempo de ejecución • Puede ser de estilo JDBC customer_id = ? • Puede ser de estilo Oracle customer_id = :1

Copyright © 2004, Oracle. Todos los derechos reservados.

Definición de Parámetros para la Cláusula Where
Durante el tiempo de ejecución, se pueden asignar valores a los parámetros.
Parámetros

Copyright © 2004, Oracle. Todos los derechos reservados.

Asignación de Valores a Consultas con Parámetros durante el Tiempo de Ejecución
1. Asigne parámetros en el cliente. 2. Una vez asignados, vuelva a ejecutar la consulta.
ViewObject vo = am.findViewObject("CustParamView"); vo.setWhereClauseParam(0, "S"); vo.setWhereClauseParam(1, new oracle.jbo.domain.Number(10)); vo.executeQuery();

Copyright © 2004, Oracle. Todos los derechos reservados.

Creación de un Cliente de Prueba: Código de Ejemplo

Copyright © 2004, Oracle. Todos los derechos reservados.

Copyright © 2004, Oracle. Todos los derechos reservados.

Creación de un Objeto de Vista durante el Tiempo de Ejecución
• Para crear un nuevo objeto de vista basado en una entidad:

//am is an ApplicationModule String entity = "orders.LineItem"; String selectClause = "id, status, quantity"; String fromClause = "line_item"; String whereClause = "status = 'S'"; ViewObject shippedItemsVo = am.createViewObjectFromQueryClauses(null, entity, selectClause, fromClause, whereClause, null);

Para crear un nuevo objeto de vista basado en una consulta:

ViewObject queryItemsVo = am.createViewObjectFromQueryStmt("", "select id, status, quantity from line_item");
Copyright © 2004, Oracle. Todos los derechos reservados.

Creación de un Objeto de Vista durante el Tiempo de Ejecución
• Para crear un nuevo objeto de vista basado en una entidad:

//am is an ApplicationModule String entity = "orders.LineItem"; String selectClause = "id, status, quantity"; String fromClause = "line_item"; String whereClause = "status = 'S'"; ViewObject shippedItemsVo = am.createViewObjectFromQueryClauses(null, entity, selectClause, fromClause, whereClause, null);

Para crear un nuevo objeto de vista basado en una consulta:

ViewObject queryItemsVo = am.createViewObjectFromQueryStmt("", "select id, status, quantity from line_item");
Copyright © 2004, Oracle. Todos los derechos reservados.

Búsqueda de Datos por Clave de Fila
• • • Compruebe el argumento de línea de comandos. Cree un objeto oracle.jbo.Key. Llame a findByKey(), que devuelve una matriz de objetos de fila.
if (args.length==0) { system.out.println("Customer ID is required"); System.exit(0); } Key custKey = new Key(new Object[] {args[0]}); Row[] customers = vo.findByKey(custKey,1);

Copyright © 2004, Oracle. Todos los derechos reservados.

Resumen
En esta lección ha aprendido a: • Crear objetos de vista de “modo experto” y de programación • Personalizar ADF Business Components para que incluya métodos personalizados • Utilizar consultas parametrizadas en objetos de vista • Probar los métodos personalizados utilizando un cliente Java de línea de comandos

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1: Visión General
Esta práctica cubre los siguientes temas: • Creación de un objeto de vista de programación • Creación de consultas parametrizadas • Creación de métodos personalizados para un objeto de vista • Prueba de métodos personalizados y suministro de parámetros de consulta mediante un cliente Java de línea de comandos

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 7-1

Copyright © 2004, Oracle. Todos los derechos reservados.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.