Tutorial Java Web: JSF + Hibernate + BootsFaces [Parte 5.1: Construyendo la Capa de Persistencia]

Miguel Manjarres
5 min readJun 19, 2020

--

Hola 👋 y bienvenido a la quinta (5.1) parte de este tutorial en el que construiremos nuestra propia aplicación de tareas en JSF. En el tutorial anterior creamos las entidades que representan los datos que queremos persistir, pero cuando ejecutamos el proyecto vemos que no hay ningún cambio en la base de datos, eso es porque no hemos configurado Hibernate aún.

En este tutorial crearemos el archivo de configuración de Hibernate y consolidaremos la capa de persistencia para las clases que creamos el tutorial pasado, ¿listo? A por ello 💪.

Abre el proyecto JSFTutorial en tu IDE Eclipse, dirígete a la carpeta main que contiene tu código Java (en mi caso JavaSource), haz click derecho y en el menú contextual ve a la opción New > Other > XML File, en la ventana diálogo coloca el siguiente nombre para el archivo: hibernate.cfg.xml, tal que así:

Como probablemente lo imaginas, este es el archivo de configuración de hibernate y una vez lo hayas creado, copia y pega el siguiente código:

Parece complicado pero no lo es en realidad, lo que hace cada tag property es:

  1. hbm2dd.auto : Le dice a Hibernate que operación efectuar sobre la base de datos cada vez que la aplicación inicie, en nuestro caso le decimos que actualice los datos, pero tambien podriamos borrar las tablas si eso quisiéramos
  2. dialect : Le dice a Hibernate que tipo de base de datos estamos usando para que pueda armar los queries de manera apropiada
  3. connection.url : La url a tu base de datos local, reemplaza la línea <TU_BASE_DE_DATOS> por el nombre que desees, en nuestro caso este será bd-jsf-tutorial
  4. connection.username : El usuario para ingresar a tu base de datos, por defecto root
  5. connection.password : La contraseña que hayas configurado para tu usuario
  6. connection.driver_class : El driver de conexión a tu sistema gestor de bases de datos, en nuestro caso MySQL, no hace falta hacer nada aquí pues nosotros ya agregamos esa dependencia en el tutorial número 3, pero recuerda que en caso de que elijas, por ejemplo, hacer una base de datos en PostgreSQL deberás cambiar esa línea por el driver adecuado

Las últimas dos líneas le dicen a Hibernate las clases que queremos mapear a la base de datos, nota que la ruta del paquete es relativa a la carpeta source.

Ya que tenemos el archivo de configuración de Hibernate podemos empezar con el desarrollo de la capa de persistencia, para ello y similar a lo que hicimos en el tutorial anterior, crea un nuevo paquete en tu carpeta source llamado repositories.

Hay muchas formas de crear las clases que conforman el repositorio, pero ya que las operaciones que efectuamos sobre los datos son las mismas la mayoría de las veces, es conveniente usar una interfaz con esos métodos e implementarlos luego en las clases dedicadas. Para hacer esto, dentro del paquete que acabas de hacer, crea una nueva interfaz con el nombre de DAORepository, una vez listo copia y pega el siguiente código:

El prefijo DAO no es arbitrario, pertenece a otro patrón de diseño Java para manejo de datos conocido como Data Access Object. Lo que acabamos de hacer es crear lo que se conoce como una interfaz genérica, si no sabes del tema no importa, lo único que debes saber es que cualquier clase podrá implementar esta interfaz para cualquier tipo arbitrario de dato, bastante útil para nuestro proyecto.

Notarás también que además de los métodos propios del CRUD, también hay tres atributos constantes, no te preocupes, lo que están haciendo es cargar la información que acabamos de colocar en el archivo de configuración de Hibernate y haciéndola efectiva.

Para probar que todo esté funcionando correctamente, vamos a crear una clase App con un método main en el paquete que se de tu agrado. Cuando estés listo copia y pega el siguiente código (reemplaza los datos y crea tantos objetos como desees):

Luego ejecuta el proyecto, pero esta vez como una aplicación Java, tal que así:

Verás en la consola mensajes del log de Hibernate parecidos a estos:

Y si revisas ahora tu base de datos verás que, efectivamente, las tablas han sido creadas y el (o los) objeto(s) que creaste ahora se encuentran guardados como registros en la tabla users:

Registro en la Tabla Usuarios

Si has llegado hasta aquí te felicito 👏 estás un paso más cerca de crear tu propia aplicación JSF, este ha sido un tutorial un poco pesado en cuestión de conceptos así que continuaremos en un próximo post dónde comenzaremos con la implementación de la interfaz genérica que elaboramos aquí. Muchas gracias por leer y espero verte en una próxima ocasión.

Si te gustó el tutorial y quieres apoyarme para seguir creando más contenido así puedes hacerme una donación aquí.

Bonus

Habrá ocasiones en las que necesites inspeccionar las sentencias SQL que Hibernate genere con propósitos de depuración, para ello agrega la siguiente propiedad en el archivo de configuración de Hibernate:

  • <property name="show_sql">true</property>

Tutorial anterior: https://medium.com/@devtony101/tutorial-java-web-jsf-hibernate-bootsfaces-37962e6dbb14

Tutorial siguiente: https://medium.com/@devtony101/tutorial-java-web-jsf-hibernate-bootsfaces-9a786919ab14

--

--

Miguel Manjarres

Ingeniero de Software con experiencia en desarrollo de aplicaciones web y de escritorio