Archive for the ‘JAVA’ Category

Ejemplo para llamar una función pg/psql

 

Este es un ejemplo de como llamar una funcion pg/sql que retorna un valor, y leer el valor dentro de un jsp. En este caso mi función devuelve un valor de tipo boolean.
Esta es la funcion en postgres
CREATE OR REPLACE FUNCTION agregar(double precision, character varying, integer, character varying, 
character varying, character varying)
  RETURNS boolean AS
$BODY$
declare
 id ALIAS FOR $3;
 establecidas int :=0;
 agregadas int :=0;
 inicio date :=TO_DATE($5,'YYYY/MM/DD');
 termino date :=TO_DATE($6,'YYYY/MM/DD');
 nulo date:= null;
 mensaje boolean := false;
BEGIN
 select into establecidas from proyectos where id=id;
 agregadas :=  count(id) from etapas where id=id;
 IF agregadas < establecidas THEN
insert into etapas (monto, observaciones, id_proy, nombre,
 fch_inicio, fch_termino, prorroga) values ($1,$2,$3,$4,inicio,termino,nulo);
mensaje:=true;
 END IF;
 RETURN mensaje;
END;
$BODY$
  LANGUAGE 'plpgsql'

Aquí mandamos llamar la función y capturamos el valor

CallableStatement proc = conn.prepareCall("{ ?=call agregar( ?,?,?,?,?,? ) }");
proc.setFloat(2,monto);
proc.setString(3,observaciones);
proc.setInt(4,p);
proc.setString(5,nombre);
proc.setString(6,fch_inicio);
proc.setString(7,fch_termino);
proc.registerOutParameter( 1, Types.BOOLEAN );
proc.execute();
if(proc.getBoolean(1))
response.sendRedirect("lista.jsp?clave="+p);
else
out.println("<h3 id='colora'><center>No se pude agregar,</center></h3>");
proc.close();

En algunas maquinas puede generar un error la jsp en el tipo de dato que se registra, esto se soluciona registrando el tipo de dato Types.BOOLEAN por Types.BIT y ya no habrá problema alguno, y para obtener el valor de retorno podemos seguir haciendo uso del metodo getBoolean(1) ya que la documentacion dice esto: Recupera el valor de un parámetro JDBC bit o booleano como un booleano en el lenguaje de programación Java.

Anuncios

Ejemplo struts 1.x ( Parte I )

apache-struts-logoA petición de un par de amigos del tecnológico voy a publicar un ejemplo de como desarrollar una aplicación web utilizando el framework de struts 1.x, en este caso solo pondré ejemplos básicos con la finalidad de hacer fácil la comprensión de la forma en que trabaja struts. Como en todos lo cursos vamos a empezar con un poco de teoría para que cuando llegue el momento de los códigos todo sea mas simple de entender. Trataré de publicar cada una de las partes cada semana, así es que empecemos con la primera.

Que es y para que utilizar struts?

Struts es un framework (marco de trabajo) que trabaja bajo la plataforma J2EE e implementa la arquitectura MVC, que nos permite ahorrar tiempo durante el desarrollo de nuestras aplicaciones web, ademas de organizar nuestro proyecto separando la lógica de negocio de la vista.

MVC en struts

Las tres capas con las que se trabaja bajo esta arquitectura son modelo, vista y controlador. La manera de que struts la implementa es la siguiente:

Modelo: En esta capa es donde se encuentra la logica de negocio, en otra palabras es toda la parte funcional de nuestra aplicacion. El modelo esta formado por tres tipos de clases:

DTO (Data Transfer Object): Estas clases nos sirven para encapsular la información en objetos, y poder transferirla entre las demás clases.

DAO (Data Access Object): La funcionalidad de este tipo de clases es acceder a una fuente de datos, realizando consultas, inserciones,actualizaciones, y todo lo demás.

BO (Bussines Object): En este tipo de clases realizamos realmente la lógica de negocios, cálculos, etcétera.

Vista: Esta capa la forman las JSP, las hojas de estilos; para formar las pantallas de los usuarios finales.

Controlador: Ya tenemos la parte de la vista y el modelo, pero falta comunicarlos y esto es la función de la capa controlador, esto se realiza a través de clases Action o DispatchAction.

 

Creo que con esto es suficiente para empezar a entender como funciona struts, a partir del siguiente post empezare a colocar un poco de códigos de ejemplo.