Implementacion Del Patron Dao

FISI Diseño de Sistemas GUIA DE IMPLEMENTACION DEL PATRON DAO Patron DAO (Data Access Object) a) Definición Es un comp

Views 109 Downloads 0 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 DatosDTO), anteriormente conocidos como Values Objects-VO

Mg. N.M.C

FISI Diseño de Sistemas

Abstract Factory ( Factoria Abstracta) 

Mg. N.M.C

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.

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.  

 



Mg. N.M.C

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.

FISI Diseño de Sistemas

Pasos de Solución del Ejercicio: Paso 01: Ingresamos a Netebeans, y creamos proyecto categoria=java, proyecto = java application.

Mg. N.M.C

un

un

nuevo

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