miércoles, 22 de julio de 2009

Integración JSF - IBATIS

Hola compañeros en esta oportunidad estoy posteando sobre este muy bonito Framework
llamado IBATIS, la verdad no muchos motivos no lo había utilizado antes, pero por necesidad de que el manejo de dicho framework es Standard en mi centro de trabajo, me dedique un par de días a investigar todo acerca de este framework y de di con la sorpresa de que es muy útil, rápido de configurar e integrar con otros frameworks a comparación de otros como Hibernate ( Aunque la verdad aun prefiero trabajar con Hibernate ). Este framework lo muy bueno que tiene es que las consultas SQL las realiza en un fichero .XML que esta necesariamente amarrado a un objeto del negocio y donde se mapearan todas las consultas relacionadas a las transacciones en donde este objeto este relacionado, las consultas están embebidas dentro de tags especiales del IBATIS que permiten recibir variables primitivas, variables de tipo clase y hasta objetos completos. Permite el uso de comodines para las consultas y parámetros dinámicos diferenciados por símbolos como el #, permite la reutilización de las consultas realizadas ( Llamado de un QUERRY a otro QUERRY ), para minimizar código, Manejo de Store Procedure, etc. Todo esto dentro de los mapeos y desde la implementación de cualquier DAO asignado simplemente se le llamaría por medio del nombre del ID el cual esta asignado al IBATIS tag que envuelve la consulta SQL respectiva, algo como lo que muestro pero empleado para distintos procesos CRUD:

• Integer estadoGuardar = (Integer)this.update( "nombreIdSQL", nombreMiObjeto );

• Usuario objUsuario = (Usuario)this.insert( "nombreIdSQL", nombreMiObjeto );

• Usuario usuario = (Usuario)queryForObject( "nombreIdSQL", codigo );

• List listaUsuario = (List)queryForList( "getListaUsuario", codigo );


Pensando en esto he visto la necesidad de hacer un aplicativo J2EE de ejemplo donde integro los Frameworks JSF y IBATIS. Es un ejemplo muy completo que se inicia con un login:

Usuario: rguerra
Password: 123

Y internamente es un mantenimiento completo de USUARIOS: Listado, Registro, Modificacion, Eliminacion (CRUD) y ademas le he agredado Filtros con comboBoxs y funcionalidad keyPress.

El aplicativo WEB esta realizado con Eclipse v3.3, bajo una plataforma JAVA v1.6 (Pero funciona tambien con la v1.5), IBATIS v2.1.6 y una motor datos MySql. El Script SQL se encuentra dentro del proyecto y viene con un Store Procedure incluido utilizado para el proceso de logín.

Aplicativo Ejemplo:

Login de la aplicacion..

Listado de Usuarios

Registro de Usuarios Nuevos de tipo 'Administrador'

Usuaio Nuevo Listado

Modificacion de Usuario Nuevo

Listado de Usuario Modificado

Eliminacion de Usuario Modificado

Listado de Usuarios Actuales


Para mayor detalle descargar el ejemplo completo: AQUI.