Vous êtes sur la page 1sur 36

Programacin

IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca

Laboratorio de la capa DAO


Arquitectura

Para la elaboracin de la arquitectura se debern crear una serie de capas las cuales de
ejemplifican en el siguiente grfico.


Modelo


Domain
DAO


Hibernate
BL




Controlador
View

Controller


Creacin de la base de datos

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Para el laboratorio deber crear la siguiente base de datos (esta se encuentra en el sitio del
grupo)

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



La figura anterior representa el modelo de la base de datos, por lo que se deber aplicarla en el
servidor MySQL utilizando la opcin Forward Engineer



Programacin IV


Laboratorio de la capa DAO


Prof: Lic. Cristhian Garita Fonseca
Los parmetros inicialmente son los datos de conexin de la base de datos (Nota: verifique que
los servicios del servidor MySQL se estn ejecutando).


Indique la contrasea de la base de datos (si el usuario no tiene contrasea, el proceso no la
solicitar)

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Al finalizar el proceso deber ver la siguiente pantalla en donde todo deber tener el check
en verde, as el log de mensajes de error no deber aparecer.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Creacin de la conexin a la base de datos desde NetBeans

Inicialmente deber configurar la conexin a la base de datos en NetBeans por lo deber ir a la
pestaa de Services (si esta oculta, podr mostrarla en la opcin Window->Services), en la
cual se muestran los diferentes servicios relacionados al IDE, en los siguientes paso se muestra
como crear esta conexin:

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Debe dar clic derecho sobre la opcin Databases y en el men contextual deber seleccionar
la opcin New Connection

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


En la siguiente pantalla de configuracin de la conexin deber seleccionar el driver de la base
de datos (NetBean tiene algunos Drivers nativos, si no lo encuentra en la el listBox deber
instalarlo en el IDE), para lo que deber seleccionar el driver correspondiente y dar clic en la
opcin Next.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Despus, deber indicar los datos de conexin:
Host
Puerto
Base de datos
Usuario
Contrasea
Y dar clic en la opcin Test Connection para verificar que la conexin a la base de datos se
esta realzando correctamente.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



En la siguiente pantalla se deber dar la opcin Finish, para finalizar la configuracin de la
conexin en NetBeans.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Al finalizar la accin, en servicios se podr observar la conexin creada, as como explorar desde
NetBeans las bases de datos con sus respectivas tablas y campos.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca

Creacin del proyecto DAO



Para la creacin de la capa de de acceso a datos (Data Access Objects), se crear un proyecto
(Aplicacin Java), esto lo que permite es que este pueda ser encapsulado en un archivo .jar y
ser usado en varios proyectos.

Para el laboratorio y para efectos del curso se utilizar el framwork Hibernate1 (Tutorial
ejemplo: http://goo.gl/q2lT3V ), para lo que deber incluir al proyecto las libreras necesarias
para su implementacin.

Deber seleccionar Libraries del proyecto creado y dar clic en la opcin Add Library.










1
Hibernate es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java (y
disponible tambin para .Net con el nombre de NHibernate) que facilita el mapeo de atributos
entre una base de datos relacional tradicional y el modelo de objetos de una aplicacin, mediante
archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer
estas relaciones.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Despus, deber buscar la librera Hibernate 4.3.x y dar clic en la opcin Add Library.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Lo mismo deber realizar con el driver de conexin de MySQL, realizando el mismo proceso
pero incluyendo la librera MySQL JDBC Driver.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Al finalizar la inclusin de las libreras, deber verse de la siguiente manera la carpeta de
libreras del proyecto creado para este laboratorio.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca

Creacin de los archivos de configuracin necesarios para la utilizacin de Hibernate



Para la utilizacin del framework, es necesario la creacin de varios archivos de configuracin,
los cuales son:
Hibernate Configuration Wizard
Hibernate Reverse Engenieering Wizard

Para esto deber dar clic en Source Packages y en el men contextual deber seleccionar
New->Other

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca




Posteriormente, deber seleccionar la categora Hibernate y en el tipo de archivo seleccionar
la opcin Hibernate Configuration Wizard y dar clic en el botn Next.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Luego deber indicar el nombre del archivo de configuracin, que para efectos de laboratorio
deber llamarse hibernate.cfg.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



En la siguiente pantalla deber seleccionar la conexin a la base de datos creada en Netbeans
(uno de los primeros para del presente documento) e indicar el dialecto, recuerdo que
Hibernate es un framework de persistencia de bases de datos, por lo que deber indicar a cual
base de datos se va a conectar, ya que el framework implementar el SQL correspondiente de
una base de datos u otra.


Despus de la creacin de este archivo el proyecto deber mostrarse de la siguiente manera, el
archivo hibernate.cfg.xml en <default package>

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Y el archivo deber contener la siguiente informacin, denote, que los datos que posee el
archivo son los necesarios para realizar la conecin a la base de datos deseada.


El siguiente archivo a crea es el Hibernate Reverse Engenieering Wizard, el cual servir para
aplicar ingeniera reversa a partir de la base de datos, es decir, generar los archivos (clases y
xml) segn lo que posea la base de datos en cuestin.

Para lo que deber dar clic derecho en Source Package y en el men contextual seleccionar la
opcin New->Other

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



En la pantalla que se muestra a continuacin deber seleccionar la categora Hibernate y el
archivo Hibernate Reverse Engenieering Wizard.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca




Posteriormente, netBeans solicitar el nombre de archivo de configuracin, que para efectos
del laboratorio se llamar como lo indica netbeans por defecto hibernate.reveng.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



En la siguiente pantalla Netbeans, le solicitar seleccionar las tablas a las cuales desea aplicarle
la ingeniera reversa (Nota: estos datos de la base de datos son mostrados con los datos de
conexin que se indicaron el en el archivo anterior, si las tablas no aparasen verifique que estos
datos sean los correctos en el archivo hibernate.cfg.xml)

De estar todo correcto se debe proceder a incluir las tablas necesarios. Add All para efectos
del laboratorio.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


En el archivo creado deber tener la siguiente informacin.




Para el laboratorio deber crear los siguientes paquetes:
cr.ac.una.prograiv.agenda.dao
o Objetos de acceso a la base de datos
cr.ac.una.prograiv.agenda.domain
o Archivos POJO (clases planas en java) y los archivos de mapeo con la base de
datos por la utilizacin de hibernate
cr.ac.una.prograiv.agenda.test
o Capa para crear las clases de prueba
cr.ac.una.prograiv.agenda.utils
o Objetos utilitarios del proyecto

Nota
Para la creacin de los paquetes se va utilizara un estndar utilizado para nombrarlos, para lo
que se debe incluir el dominio de la empresa o institucin en la que se desarrollar la aplicacin:

cr.ac.una.prograIV.app.vista


Dominio de la empresa
o institucin

Nombre
departamento o curso

Nombre aplicacin

Capa de aplicacin

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca



Para lo que deber dar clic en Source Package y crear los paquetes indicados anteriormente.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca

Creacin de la clase Utileras de Hibernate



Para la utilizacin del hibernate deber tener acceso al Session Factory2, para lo cual se crear
una clase que la gestione para su utilizacin en los objetos de acceso a la base de datos (DAO).

Para la creacin de esta clase, se deber dar clic derecho al paquete utils y en el men
contextual seleccionar la opcin New->Other.., despus buscar la categora Hibernate y el
archivo HibernateUtil.java y dar clic en la opcin siguiente hasta finalizar con la creacin de la
clase.







2
La SessionFactory es aquella que se encarga indicarle al sistema, donde se encuentran todos
los ficheros de mapeo de Hibernate y de configuracin.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Esta clase deber contener el siguiente cdigo:
Mtodos a atributos para poder acceder al sessionfactory
Un mtodo para iniciar cada operacin con la base de datos, ntese que en este mtodo
se obtiene el sessionfactory y se inicia una transaccin3 en la base de datos.
Un mtodo para controlar los errores en las transacciones que se realicen en la base de
datos, en caso de fallo, se realiza un rollBack, lo que regresa la base de datos a su estado
original antes del inicio de la transaccin.


3
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo
que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa
el sistema debe cancelar la transaccin, empieza a deshacer las rdenes ejecutadas hasta dejar
la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la
transaccin nunca se hubiese realizado.


Generacin del mapeo de la base de datos

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Una de las caractersticas de Hibernate es realizar un mapeo de la base de datos y crear los
objetos en java relacionados a cada tabla existente en esta, por lo que se dice que con
hibernate se programa con una base de datos de objetos.

Para poder realizar el mapeo de la base de datos, deber dar clic en el paquete domain, y en
men contextual deber seleccionar la opcin New->Other..

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Luego, seleccionar la categora Hibernate y el archivo Hibernate Mapping Files and POJOs
from Data Base

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Finalmente deber seleccionar la opcin JDK 5 Language Features para que genere las clases
con las especificaciones del JDK5.

Nota: note que el wizard busca los archivos de configuracin creados anteriormente
(hibernate.cfg.xml y hibernate.reveng.xml) si estos estn mal configurados la accin no se
podr realizar con xito.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Una vez generado el mapeo de la base de datos, podr observar en el paquete domain, las
clases con sus receptivos mapeos haciendo referencia a la base de datos en cuestin.


Creacin del paquete DAO

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


En el paquete DAO, existirn todos los objetos que tienen acceso a la base de datos, como
todos los objetos tiene el mismo comportamiento se proceder a la creacin de una interfaz
que ser implementada en cada una de las clases DAO gestionen la informacin de la base de
datos.

Para esto deber dar clic derecho sobre el paquete DAO, y crear la interfaz IBaseDAO, la cual
utiliza Java Generics4 para su desarrollo







4
Uso de java generics http://goo.gl/H7OsQS


Programacin IV

Laboratorio de la capa DAO

Prof: Lic. Cristhian Garita Fonseca

Posteriormente deber implementar las clases DAO para cada una de la tablas de la base de
datos, heredando de la clase HibernateUtil e implementando la interfaz IBaseDAO.

Con los siguientes mtodos:
1. Save: Guarda el objeto en la base de datos.
2. Merge: Verifica el objeto con el registro de la tabla, las diferencias en los atributos del
objeto los aplica en la base de datos (update).
3. Delete: Borra el objeto de la base de datos.
4. findById: Busca un objeto por el identificador en la base de datos y lo retorna.
5. findAll: retorna todos los objetos de la base de datos utilizando el HQL5 como lenguaje
de consulta navito utilizado por hibernate.


SAVE

















5
Tutorial de HQL: http://goo.gl/mKA4sS


MERGE

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca




DELETE


FINDBYID

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


FINDALL


Al finalizar se deber crear una clase prueba en donde se ejecuten los diferentes mtodos para
verificar su correcto funcionamiento.

Programacin IV
Laboratorio de la capa DAO
Prof: Lic. Cristhian Garita Fonseca


Al finalizar este laboratorio el proyecto deber tener la siguiente estructura de proyecto

Vous aimerez peut-être aussi