Está en la página 1de 35

Spring - MyBatis - JSF2

Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Acerca de Spring - MyBatis - JSF2

Esta aplicación basada en Spring Framework 3 se apoya en la capa del modelo con el framework
MyBatis 3 y en la capa del control vista con el framework JavaServer Faces 2.1, muestra por lo tanto la
integración de de los 3 framework para dar solución CRUD (mantenimientos) a una base de datos en
MySQL 5.5 de nombre dbnobel, las tablas en ella son: nobel y paises. Para el desarrollo se usa el IDE
NetBeans 7.1.2 con jdk1.7up04 El diagrama entidad relación de dbnobel es:

La base de datos se llama dbnobel y su script, así como todas las fuentes de la aplicación serán
entregados con esta separata. El proyecto tendrá la siguiente presentación inicial para el menú Nobel:

17/09/2010 1
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Consideraciones para el desarrollo del proyecto


Para el desarrollo del proyecto considerar lo siguiente:
 Debe tener instalado Java Standard Edition. La versión a la fecha es JDK 7 Update 4. Si gusta más
información al respecto puede ver nuestra separata gratuita “JDK 7 Update 2 – Instalación”.
 Debe tener instalado MySQL. La versión a la fecha es MySQL 5.5. Si gusta más información al
respecto puede ver nuestra separata gratuita “MySQL 5.5 – Instalación”.
 Debe tener instalado NetBeans 7.1.2. Si gusta más información al respecto puede ver nuestra
separata gratuita “NetBeans 7.1 - Instalación”.

El nivel de la separata es avanzado en conocimientos de Java y NetBeans.

Consideraciones a www.parainformaticos.com
Si al seguir las instrucciones de esta separata encuentra diferencias o puntos no mencionados, la
información que nos pueda proporcionar es muy importante, a fin de hacer las mejoras continuas para
la entera satisfacción de nuestros lectores. Puede entrar http://www.parainformaticos.com y desde allí
escribirnos, además encontrará otras separatas como esta y otros servicios.

Ejecución del script dbnobel.sql

Crear la base de datos


dbnobel, para poder
ejecutar el script
dbnobel.sql que viene
con esta separata. Para
ello activar la ficha
Services de NetBeans,
si no estuviese visible, revise el menú Window, desde allí la puede hacer visible. Entonces, en la ficha
Services clic derecho sobre MySQL Server y seleccione Create Database, en el diálogo que se muestra
digite dbnobel.

Una vez creada la base de datos dbnobel, active el menú File / Open File de NetBeans y abra el archivo
dbnobel.sql.

Del combo Connection seleccione la conexión a la base de datos dbnobel y clic en el ícono Run SQL
como muestra la figura encima de este texto. Entonces la base de datos dbnobel con las tablas nobel y
paises han sido creadas.

17/09/2010 2
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Desarrollo del proyecto SpringMyBatisJSF2

En NetBeans 7.1.2 crear el proyecto SpringMyBatisJSF2 de categoría Java Web / Web Application para
el servidor Apache Tomcat 7.0.22 con Java EE 6 Web:

En paso selección del framework, seleccione Spring Web MVC:

17/09/2010 3
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Luego seleccionar JavaServer Faces y en la ficha Libraries seleccione: JSF 2.1:

17/09/2010 4
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Luego, de la ficha Components de JavaServer faces seleccione PrimeFaces 2.2.1:

En el nodo Libraries añadir mybatis-3.0.5.jar, mybatis-spring-1.0.1.jar y pepper-grinder-1.0.1.jar


(entregados con esta separata). También, añadir el driver de MySQL (MySQL JDBC Driver). Así se vería el
nodo Libraries con lo añadido:

17/09/2010 5
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Crear /WEB-INF/jdbc.properties con el siguiente contenido:

En el archivo anterior se ha considerado usuario root con password mysql.

Editar el archivo applicationContext.xml para la conectividad con la base de datos:

17/09/2010 6
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Asimismo, crear en la carpeta WEB-INF el archivo faces-config.xml dando clic derecho sobre WEB-INF /
New / Others / JavaServer Faces / JSF Faces Configurations y edite con el siguiente contenido para que
JavaServer Faces sea el controlador:

Editar el archivo web.xml en el folder WEB-Pages / WEB-INF, para iniciar con index.xhtml y usar el tema
de PrimeFaces pepper-grinder:

17/09/2010 7
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Eliminar el archivo redirect.jsp en Web Pages y la carpeta WEB-INF / jsp. Vista de Web Pages sería:

Hasta el momento ya tenemos acceso a conexiones a base de datos por Spring y MyBatis y el control
vista está establecido para JavaServer Faces por lo tanto corresponde seguir la secuencia siguiente:

1. Crear los Objetos de dominio (Object Domain)


2. Crear la interfaces y XML de mapeo a las tablas de la base de datos
3. Crear la interfaces de servicios
4. Crear las implementaciones de los servicios
5. Crear los bean administrados (ManagedBean) de JavaServer Faces
6. Las vistas de la aplicación.

A esta secuencia en paralelo se desarrollan configuraciones en: applicationContext.xml para aprovechar


las características funcionales de Spring.

17/09/2010 8
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

1. Crear los Object Domain: Paises y Nobel

Los objetos de dominio o de negocios contienen data encapsulada para uso de las diferentes capas de la
aplicación. Crear en el paquete domain los objetos de dominio Paises y Nobel:

17/09/2010 9
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 10
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

2. Crear la interfaces y XML de mapeo: PaisesMapper y NobelMapper


En lugar de codificar DAOs (data access objects) Mybatis-Spring proporciona una factoría de proxies
permitiendo inyectar mappers directamente en otros beans. Los mappers se invocan de la misma forma
que los DAOs, pero MyBatis-Spring los creará.

Al usar mappers inyectados el código no tendrá dependencias directas de MyBatis, Spring o MyBatis-
Spring. El proxy creado se encarga de crear y cerrar sesiones.

Crear en el paquete mybatis.mapper las interfaces PaisesMapper y NobelMapper con el siguiente


contenido:

17/09/2010 11
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Crear en el paquete mybatis.mapper los archivos PaisesMapper.xml y NobelMapper:

17/09/2010 12
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Corresponde en el archivo applicationContext.xml generar la configuración de inyección para que


NobelMapper y PaisesMapper reciban el objeto sqlSessionFactory para sus operaciones.

17/09/2010 13
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

3. Crear las interfaces: PaisesService y NobelService

Corresponde planificar los servicios, ya que solo queremos operaciones CRUD. Entonces, el paquete
service crear las interfaces PaisesService y NobelService:

17/09/2010 14
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

4. Crear las implementaciones: PaisesServiceImpl y NobelServiceImpl

En el paquete service.impl crear PaisesServiceImpl y NobelServiceImpl:

17/09/2010 15
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 16
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 17
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Corresponde en el archivo applicationContext.xml generar la configuración de inyección para que


PaisesServiceImpl y NobelServiceImpl reciban sus respectivos Mapper para sus operaciones.

17/09/2010 18
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

5. Crear los ManagedBean: ManagedBeanPaises y ManagedBeanNobel

Llegando a la parte final de la programación por el lado del servidor, corresponde crear en el paquete
web.managedbean a los manipuladores del flujo de operaciones: ManagedBeanPaises y
ManagedBeanNobel

17/09/2010 19
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 20
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 21
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 22
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 23
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 24
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 25
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 26
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Corresponde en el archivo applicationContext.xml generar la configuración de inyección para que


ManagedBeanPaises y ManagedBeanNobel reciban sus respectivos servicios para sus operaciones.

La estructura del nodo Source Pages se verá:

17/09/2010 27
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

6. Las vistas de la aplicación

Ahora corresponde dedicarnos a la vista de la aplicación, por lo tanto empecemos copiando la carpeta
css (proporcionada con esta separata) al nodo Web Pages:

Luego, en el archivo index.xhtml digite lo siguiente:

El formulario (form) del body lo convertiremos en componente de composición, por lo tanto seleccione
todo el formulario, clic derecho sobre él, escoja Refactor / Convert To Composite Component:

17/09/2010 28
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Del diálogo emergente llene los siguientes campos:

El archivo index.xhml quedará convertido a lo siguiente, después que importe xmlns:ez y quite xmlns:p:

17/09/2010 29
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

La carpeta resources es creada por proceso anterior. El nodo Web Pages se verá así:

Por último copie mensaje.xhtml y la carpeta view proporcionadas con esta separata:

Contenido de nobel.xhml vista en la primera página de esta separata:

17/09/2010 30
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

17/09/2010 31
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Contenido de paises.xhml

17/09/2010 32
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Vista:

17/09/2010 33
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Contenido de nobelIns.xhml

17/09/2010 34
Spring - MyBatis - JSF2
Por: Ing. Víctor M. Balta Alva (vbalta@parainformaticos.com)

Salida:

Puede ejecutar su proyecto!

¡Gracias por leer nuestras Separatas!


¡Para Informáticos facilita tu aprendizaje!

17/09/2010 35

También podría gustarte