Capa Modelo: Detallando a fondo II

Hablaremos ahora del patrón de acceso a datos DAO y veremos sus particularidades utilizando Hibernate combinado con Spring. El DAO implementa siempre las operaciones básicas de acceso a datos, como por ejemplo: insertar, buscar, actualizar y borrar, entre otras. Generalmente estas operaciones se lanzan como sentencias sobre la base de datos y si utilizásemos simplemente JDBC se lanzarían como sentencias SQL embebidas en el código Java. Gracias a utilizar Hibernate no necesitamos incluír SQL en el código, y esto supone una ventaja por varios aspectos, pero principalmente porque podemos seleccionar el motor de base de datos que querramos utilizar dado que el SQL que estos implementan no siempre sigue el estándar, además muchas veces suele ser engorroso.

Si utilizamos Spring integrado con Hibernate disponemos de una clase HibernateDaoSupport en la que se incluyen las operaciones básicas de acceso a datos y también otros métodos para poder ejecutar sentencias más complejas, que muchas veces necesitaremos, estas sentencias se incluirán en los ficheros hbm.xml de mapeo, escritas en HQL (el sql de hibernate).

En cyberHotel hemos creado una clase que hereda de HibernateDaoSupport que hemos nombrado AbstractSpringDao y todos los DAO’s heredan a su vez de esta última (en los libros se suele denominar patrón Layer Supertype).

Para que todo funcione el fichero applicationContext.xml deberá de estar correctamente configurado, de forma que los DAO’s conocen los distintos ficheros de mapeo.

Todos los DAO’s se ocultan mediante el patrón Fachada que hemos mencionado en un post anterior, que utilizará estos para implementar la lógica de negocio de la aplicación y ocultará también las tecnologías empleadas, proveyendo al modelo de una interfaz hacia las demás capas (vista y controlador) que actuarán como clientes del modelo.

Un ejemplo de DAO en cyberHotel es el siguiente:

 

Detallando a fondo II

Escribe un comentario