Tipos de objetos dinámicos y estáticos para el DMS de JDBC

Los DataObjects de la especificación SDO (Service Data Object) 1.0 pueden utilizar tipos dinámicos y estáticos. Si sabe que un determinado esquema de dataGraph cumple todos los requisitos de consulta de aplicación, puede generar código SDO estático para obtener ventajas de tiempo de ejecución, si es posible.

Con los tipos dinámicos, la información que define la forma de un DataGraph se construye durante la ejecución. El esquema de DataGraph se crea mediante el DMS (Data Mediator Service) de JDBC a partir de los metadatos proporcionados en la creación. El DMS de JDBC sólo requiere los metadatos y una conexión con un origen de datos para producir el DataGraph con tipos dinámicos. Este es el método predeterminado para crear el DMS de JDBC.

Si conoce la forma del DataGraph durante el desarrollo, puede utilizar un generador de código para crear interfaces de tipo forzado (código de API de datos estáticos) que simplifican la navegación del DataGraph, proporcionan una mejor comprobación de errores durante la compilación y mejoran el rendimiento. Para obtener más información sobre los metamodelos a partir de los cuales puede generar código SDO estático, consulte la introducción de la especificación SDO 1.0. La introducción contiene una lista de los requisitos de ámbito de la especificación, donde puede encontrar una breve descripción del soporte de la API de datos estáticos. Tenga en cuenta que la API dinámica aún está disponible cuando utiliza DataObjects de tipo forzado.

Con el generador de código puede crear clases para cada tipo DataObject del DataGraph. Cada clase contiene los métodos getter() y setter() para cada propiedad del DataObject. Esto permite que el cliente llame a métodos de seguridad de tipos en lugar de pasar el nombre de una propiedad. Por ejemplo, en lugar de llamar a la propiedad DataObject.get("CUSTFIRSTNAME"), los tipos generados pueden contener un método DataObject.getCustFirstName(). Si accede a un DataObject relacionado, los accessor devuelven DataObjects de tipo forzado en lugar de DataObjects regulares. Por ejemplo, DataObject.get("Customers_Orders") devuelve un DataObject, pero DataObject.getOrders() devuelve un objeto de tipo Order.

Para utilizar los tipos estáticos con el DMS de JDBC es necesario proporcionar los metadatos, una conexión con el origen de datos y el esquema de DataGraph a los métodos create de la clase JDBCMediatorFactory. En este caso, los metadatos del DMS de JDBC no determinan la forma del DataGraph, sino que dan la información del DMS acerca del origen de datos del programa de fondo y el modo en que se correlaciona con un DataGraph.

Cuando se utilizan DataObjects de tipo forzado, es importante asegurarse de que la consulta coincida con el esquema de DataGraph. No es necesario que la consulta rellene todos los objetos de datos y las propiedades del esquema, pero una consulta no puede devolver objetos de datos o propiedades que no estén definidos en el esquema de DataGraph. Por ejemplo, un esquema de DataGraph podría definir los DataObjects Customer (Cliente) y Order (Pedido) pero una consulta quizá devuelva sólo objetos Customer (Cliente). Además, el objeto Customer podría definir propiedades para ID (Identificador), Name (Nombre) y Address (Dirección), pero quizá la consulta no devuelva la dirección. En este caso, el valor de la propiedad Address es nulo y el valor no se actualiza en la base de datos cuando se llama al método applyChanges(). En este ejemplo, la consulta quizá no devuelva una propiedad Phone (Teléfono) porque no se ha definido como una propiedad en el objeto Customer. Cuando una consulta intenta esto, el DMS devuelve una excepción de metadato no válido.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_dotypes
File name: rdat_dotypes.html