From: | Ricardo Fuentes Pereira <rfuentesp(at)gmail(dot)com> |
---|---|
To: | utaladriz(at)exe(dot)cl, "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Parametros en Procedimientos almacenados |
Date: | 2005-05-13 19:16:58 |
Message-ID: | 4284FD2A.1@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, y gracias por contestar
Ubaldo Taladriz escribió:
>Te recomiendo utilizar otro mecanismo de persistencia, hibernate es una
>buena opción
>
>
Lo hemos estado pensando en mi equipo de desarrollo, pero aun estamos
evaluando el mecanismo de persistencia a utilizar. Me parece, y esto es
una opinion personal, que aun no hay un standard sobre el cual trabajar
la persistencia en Java, por lo que estoy muy a gusto de la forma como
trabajo.
>En tu caso
>La tabla podrías identificarla como un atributo estático de la clase.
>Ahora para dinámicamente leer las propiedades del objeto puedes utilizar
>reflection y en base a eso obtener el tipo de propiedad y convertirla al
>tipo apropiado en SQL.
>
>
No me ha quedado muy claro esto último que me planteas. Alguna pagina
que visitar para mayor informacion o dar algun ejemplo basico
Saludos
>Saludos
>
>
>El jue, 12-05-2005 a las 17:58 -0400, Ricardo Fuentes Pereira escribió:
>
>
>>Hola.
>>Actualmente estoy trabajando con Java y PostgreSQL en mis proyectos.
>>Utilizo procedimientos almacenados para interactuar con postgresql.
>>Suponiendo que tengo esta tabla en la BD:
>>
>>mi_tabla
>>entero int4
>>cadena varchar
>>
>>Creo una clase analoga a la tabla en cuestion:
>>public class MiTabla {
>> private int entero;
>> private String cadena;
>>
>>// agregar metodos get y set para obtener y establecer atributos
>>}
>>
>>A continuacion, utilizando un patron de diseño, hago que mis metodos de
>>reciban un objeto cuando, por ejemplo, necesito ingresar un registro o
>>fila. Por ejemplo:
>>public int insertMiTabla(MiTabla _miTabla)
>>
>>Y dentro del metodo hago uso de la CallableStatement, entregandole un
>>String como argumento. Este String lo declaro de la sgte forma:
>>String sp = "{? = call insertMiTabla( ?, ? )}";
>>
>>donde despues establezco en el CallableStatement los dos ultimos signos
>>de pregunta con _miTabla.getEntero() y _miTabla.getCadena().
>>Utilizo plpgsql en el otro lado, donde el procedimiento debiera ser asi:
>>
>>CREATE OR REPLACE FUNCTION insertMiTabla(int4, varchar)
>> RETURNS int4 AS
>> '
>> DECLARE _entero ALIAS FOR $1;
>> _cadena ALIAS FOR $2;
>>
>> BEGIN
>> INSERT INTO mi_tabla
>> (entero, cadena)
>>
>> VALUES (_entero, _cadena);
>> RETURN 0;
>> END;
>> '
>> LANGUAGE 'plpgsql' VOLATILE;
>>
>>He aqui el problema. Deseo pasar solo un parametro en el procedimiento
>>almacenado, algo que sea analogo a mi_tabla, para seguir utilizando el
>>patron de diseño (el beneficio de este patron esta dado en que si se
>>agregan/eliminan campos en la tabla, no tenga que modificar mi codigo
>>Java donde haga ingresos/modificaciones de datos, sino que tengo que
>>hacer los cambios en el servidor de la BD :) ).
>>
>>Me imagino que se tendra que crear un tipo complejo. ¿Y cual sera su
>>tipo en Java el cual ira en la declaracion de la sentencia?
>>
>>Espero sus respuestas.
>>
>>Salu2
>>
>>---------------------------(fin del mensaje)---------------------------
>>TIP 8: explain analyze es tu amigo
>>
>>
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Soto Cordones | 2005-05-13 20:41:17 | Re: USOS DE POSTGRESQL |
Previous Message | mmiranda | 2005-05-13 18:00:10 | RE: Secuencias (Consulta) II |