Consulta Fornecida pelo Mediador JDBC

Um cliente SDO pode fornecer o DMS (Data Mediator Service) JDBC com uma instrução SELECT para substituir a instrução gerada a partir dos metadados DMS.

Quando o cliente SDO instancia um DMS, o DMS utiliza os metadados de definição para gerenciar uma instrução SELECT básica. A substituição dessa consulta fornece a capacidade para especificar marcadores de parâmetros; portanto, você tem mais controle sobre os dados de cliente que preenchem um dataGraph. Utilize uma cadeia SQL SELECT padrão para uma consulta fornecida pelo cliente.

Com as consultas fornecidas e com as consultas geradas, as instruções UPDATE, INSERT e DELETE são automaticamente geradas para cada DataObject. Elas são aplicadas quando o mediador consolida as alterações feitas no DataGraph de volta ao banco de dados.

DataObjects de Parâmetro para Consultas Fornecidas

Os clientes podem utilizar um DataObject de parâmetro para fornecer argumentos para uma consulta SQL SELECT. Um DataObject de parâmetro é um DataObject, mas não faz parte de qualquer DataGraph. Ele é construído pelo JDBC DMS quando solicitado pelo cliente. O ParameterDataObject para consultas fornecidas é criado com base na consulta fornecida pelo mediador. Todos os parâmetros na consulta recebem um nome, como arg0, arg1, …, argX.

Como um DataObject de parâmetro é um DataObject, você pode definir suas propriedades utilizando o nome da propriedade ou um valor de índice. As propriedades podem ser referenciadas por seus nomes argX ou pelo número associado a esse parâmetro, 0, 1, … , X. Por exemplo, sua consulta é “SELECT CUSTFIRSTNAME WHERE CUSTSTATE = ? AND CUSTZIP = ?”. Essa consulta fornecida contém dois parâmetros. O primeiro parâmetro corresponde a CUSTSTATE e pode ser configurado usando a sequência “arg0” ou o índice 0. O segundo parâmetro corresponde a CUSTZIP e pode ser configurado usando a sequência “arg1” ou o índice 1. Segue um código de amostra de como eles são configurados. Esse código supõe que você já tenha configurado os metadados e o mediador com os metadados e a consulta fornecida mencionada anterirmente. Utilizando o método do valor de índice, codifique:

DataObject parameters = mediator.getParameterDataObject();
parameter.setString(0, "NY");
parameter.setInt(1, 12345);
DataObject graph = mediator.getGraph(parameters);

Utilizando o método do nome da propriedade, codifique:

DataObject parameters = mediator.getParameterDataObject();
parameters.setString("arg0", "NY");
parameters.setInt("arg1", 12345);
DataObject graph = mediator.getGraph(parameters);

Os resultados são os mesmos para ambos os casos.

Limitações

A consulta SQL SELECT gerada pelo JDBC DMS não é totalmente suportada no Oracle ou no Informix. Isso ocorre porque o mediador tira proveito da interface ResultSetMetaData no JDBC 2.0 e requer que ela seja totalmente implementado. Oracle, Informix, DB2/390 e versões mais antigas suportadas do Sybase não implementam a interface ResultSetMetaData completamente. A abordagem de seleção fornecida ainda pode ser utilizada com esses bancos de dados com uma limitação: Nomes de coluna nos Metadados devem ser exclusivos em todas as tabelas. Ocorrerá uma InvalidMetadataException se a instrução de seleção retornar uma coluna com um nome que apareça várias vezes nos metadados. Por exemplo, se as tabelas Cliente e Pedido contiverem uma coluna chamada “ID”, isso poderá ser inválido e causar problemas. A maneira de se corrigir isso é alterar o nome de, no mínimo, uma das colunas correspondentes no banco de dados para distinguir melhor as duas colunas entre si. Para a tabela Cliente, o nome da coluna poderia ser alterado para “CUSTID,” como ocorre nos exemplos. O nome da coluna Pedido poderia ser alterado para “ORDERID”. Se você alterar o nome de coluna do Cliente, não terá que alterar o nome da coluna de Pedido, mas pode ser uma boa idéia no que se refere a consistência.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_sdosquery
Nome do arquivo: rdat_sdosquery.html