You are on page 1of 28

FISI

Diseño de Sistemas

GUIA DE IMPLEMENTACION DEL

PATRON DAO

Patron DAO (Data Access Object)

a) Definición

Es un componente de software que suministra una interfaz común entre la


aplicación y uno o más dispositivos de almacenamiento de datos, tales como
una Base de datos o un archivo

El patrón DAO se utiliza para:

 Abstraer y encapsular a los datos


 Gestionar las conexiones a las fuentes de datos
 Obtiene o actualiza los datos almacenados en las fuentes de datos.

b) Estructura del Patrón DAO

 BusinessObject: Es el objeto que quiere acceder a la fuente de datos para poder


almacenar o consultar datos.
 DataAccessObject: Abstrae al BusinessObject de los detalles del acceso a la
fuente de datos.
 DataSource: Representa la implementación de la fuente de datos en sí.
 Transfer Object: Es un objeto intermedio entre el BusinessObject y el
DataAcessObject.

Este patrón introduce una capa de abstracción entre la capa de lógica del negocio y la
capa de persistencia almacenamiento, como se muestra en la imagen siguiente. Los

Mg. N.M.C
FISI
Diseño de Sistemas

objetos de negocio acceden a la base de datos ( Data Source ) a traves de los objetos de
acceso a datos (DAO). Esta capa de abstraccion simplifica el codigo de la aplicacion e
introduce flexibilidad. Idealmente, los cambios realizados a la fuente de datos, tales
como cambio de proveedor de base de datos o del modelo, solo seria necesario
modificar los objetos de acceso a datos y deben tener un impacto minimo en los objetos
de negocio.

c) Relacion con otros Patrones

Sin embargo como las aplicaciones del mundo real no esta compuestas por el acceso a
una simple tabla, para enfrentar esta situacion se utiliza el patron Factory que permite
implementar una fabrica de objetos DAO.

Ahora la informacion que devuelve o se le pasa al DAO se encapsula en objetos de tipo


Transfer Oject( Objeto de Transferencia), que son contenedores de informacion.

 Transfer Object (DTO/TO): La informacion que se envia/recibe del DAO se


"empaqueta" en estos objetos.
 Factory: Con el objeto de conseguir la independencia del almacen de datos
comunmente se usa este patron para las instancias del DAO's.

Data Transfer Object (DTO)

 Problema :Cuando se trabaja con arquitecturas de varias capas, un problema


tipico es como pasar los datos de una capa a otra.

 Solucion : Usar los Data Transfer Object ( Objectos de Transferencia de Datos-


DTO), anteriormente conocidos como Values Objects-VO

Mg. N.M.C
FISI
Diseño de Sistemas

Abstract Factory ( Factoria Abstracta)

 Generalmente un proyecto de software se desarrolla con una fuente de datos en


particular (PostgreSQl,SQL Server, MySQL,Oracle, Archivos XML, Archivos
Excel, Archivos texto,cvs, etc). Sin embargo, la fuente de datos podria cambiar
en cualquier momento, por lo que se deberia, en la medida de los posible ,
abstraer el desarrollo de la aplicacion de la fuente de datos.

Mg. N.M.C
FISI
Diseño de Sistemas

IV.- ComponenteDAO

a) Creando la base de datos

Crear la base de datos dbuniversidad , para poder ejecutar en ella el script


dbuniversidad.sql. Para ellos activar la ficha Services(Prestaciones) de
NetBeans, si no estuviese visible, revise el menu Window, desde alli la puede
hacer visible. Entonces, de la ficha Services clic derecho sobre MySQL Server
seleccione Create Database, en el dialogo que se muestra digite
dbuniversidad.

Creada la base de datos dbuniversidad, active el menu File/Open File de


NetBeans y abra el archivo dbuniversidad.sql, este script ya contiene los
procedimientos almacenados con los cuales se va a trabajar. A continuacion
muestro los pasos para conectar NetBeans a MySQL y poder crear una base
de datos, para luego ejecutar el scritp dbuniversidad.sql.

Mg. N.M.C
FISI
Diseño de Sistemas

Mg. N.M.C
FISI
Diseño de Sistemas

b) Desarrollo del proyecto ComponenteDAO

A continuacion una breve explicacion de los elementos que se implementaran.

 AccesoDB: Se trata de una clase que permite el acceso a una instancia


del objeto Connection con el acceso a la base de datos universidad.
 AlumnoTO: Se trata de una clase que encapsula los datos de un
alumno, se utiliza para comunicar los datos hacia el objeto DAO y
viciversa.
 IAlumnoDAO: Se trata de la interfaz donde se define las operaciones
que debe implementar las clase AlumnoDAO.
 AlumnoDAO: Se trata de una clase que encapsula todas las
operaciones relacionadas a la tabla Alumno. Se comunica con la fuente
de datos, en este caso la base de datos universidad.
 DAOFactory: Permite un acceso transparente a los objetos DAO. Es
decir se quiere proporcionar una biblioteca de clases , donde solo se
quiere revelar sus interfaces y no su implementación.

Mg. N.M.C
FISI
Diseño de Sistemas

Pasos de Solución del Ejercicio:

Paso 01: Ingresamos a Netebeans, y creamos un un nuevo


proyecto categoria=java, proyecto = java application.

Mg. N.M.C
FISI
Diseño de Sistemas

Paso 02: Crear la clase AccesoDB. java para acceder a la base de datos, esta
clase lo debe crear en el paquete dao.ds, como muestra la imagen

Mg. N.M.C
FISI
Diseño de Sistemas

El codigo de la clase AccesoDB.java es el siguiente.

Paso 03: Implementemos la clase AlumnoTO.java, fundamentalmente para encapsular


los datos de un alumno. La clase se debe crear dentro del paquete dao.to El codigo es el
siguiente

Mg. N.M.C
FISI
Diseño de Sistemas

Mg. N.M.C
FISI
Diseño de Sistemas

Paso 04: Definamos la Interfaz IAlumnoDAO.java para el objeto DAO de alumnos, la


interfaz se debe crear en el paquete dao.design.

Mg. N.M.C
FISI
Diseño de Sistemas

El codigo de la interfaz IAlumnoDAO.java, es el siguiente.

Paso 05: Implementemos la clase AlumnoDAO.java para las operaciones con la tabla
alumno. La clase debe ser creada en el paquete dao.component.

Mg. N.M.C
FISI
Diseño de Sistemas

Codigo de la clase AlumnoDAO .java.

Mg. N.M.C
FISI
Diseño de Sistemas

Mg. N.M.C
FISI
Diseño de Sistemas

Mg. N.M.C
FISI
Diseño de Sistemas

Paso 06: Implementemos la clase DAOFactory.java que permite el acceso transparente


a los objetos DAO, esta clase debe crearse en el paquete dao.

Mg. N.M.C
FISI
Diseño de Sistemas

A continuacion el codigo de la clase DAOFactory.java.

Paso 07: Generamos el proyecto ComponenteDAO, para obtener el archivo


ComponenteDAO.jar

Mg. N.M.C
FISI
Diseño de Sistemas

Luego de generar el proyecto, se debe crear la carpeta dist dentro del proyecto donde se
ubica el ComponenteDAO.jar, se recomienda que si hace alguna actualizacion de
codigo en el ComponenteDAO, se debe generar para actualizar dicho
componenteDAO.jar.

Mg. N.M.C
FISI
Diseño de Sistemas

c) Probando el ComponenteDAO

- Creando un Test1ComponenteDAO tipo Java Application

Adjuntar el archivo ComponenteDAO.jar, en la parte de librerias del proyecto


Test1ComponenteDAO

Mg. N.M.C
FISI
Diseño de Sistemas

Ademas debe adjuntar el Driver de MySQL.

Mg. N.M.C
FISI
Diseño de Sistemas

Luego escribir el siguiente codigo en el archivo Main = Test1ComponenteDAO

Mg. N.M.C
FISI
Diseño de Sistemas

Aca el resultado que debe salir, luego de ejecutar el Main = Test1ComponenteDAO.

Mg. N.M.C
FISI
Diseño de Sistemas

2. Creando un Test1ComponenteDAO tipo Java Web

Mg. N.M.C
FISI
Diseño de Sistemas

Adjuntar el archivo ComponenteDAO.jar, en la parte de librerias del


proyecto Test2ComponenteDAO

Mg. N.M.C
FISI
Diseño de Sistemas

Ademas debe adjuntar el Driver de MySQL.

Mg. N.M.C
FISI
Diseño de Sistemas

Coloque el siguiente codigo en la pagina index.jsp

Mg. N.M.C
FISI
Diseño de Sistemas

Aca el resultado que debe salir, luego de ejecutar el index.jsp


de Test2ComponenteDAO.

Mg. N.M.C
FISI
Diseño de Sistemas

Mg. N.M.C

You might also like