Successfully reported this slideshow.
Your SlideShare is downloading. ×

4. acceso a datos

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Acceso a datos
Acceso a datos
Loading in …3
×

Check these out next

1 of 27 Ad

More Related Content

Advertisement

Recently uploaded (20)

Advertisement

4. acceso a datos

  1. 1. ACCESO A DATOS
  2. 2. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) Contenidos de la unidad 1. Concepto de mapeo objeto‐relacional (ORM) 2. Características de las herramientas ORM 3. Instalación y configuración de una herramienta ORM 4. Estructura de ficheros de Hibernate. Mapeo y clases  persistentes. 5. Sesiones. Objeto para crearlas. 6. Carga, almacenamiento y modificación de objetos 7. Consultas HQL (Hibernate Query Language)
  3. 3. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 1. Concepto de mapeo objeto‐relacional (ORM) El mapeo objeto‐relacional (más conocido con sus siglas ORM)  es una técnica de programación que permite convertir datos entre el sistema de tipos utilizado en un lenguaje de  programación y el utilizado en una base de datos relacional.
  4. 4. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 2. Características de las herramientas ORM Las ventajas principales del mapeo objeto‐relacional son: Rapidez en el desarrollo Abstracción de la base de datos Reutilización Mantenimiento del código Lenguaje propio para realizar las consultas Incentivan la portabilidad y escalabilidad de los programas de software
  5. 5. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 2. Características de las herramientas ORM Uno de los inconvenientes es que las aplicaciones son algo más lentas debido a que todas las consultas que se hagan sobre la base de datos, el sistema primero deberá transformarlas al lenguaje propio de la herramienta, luego leer los registros y por último crear los objetos. Hibernate es una herramienta de mapeo objeto-relacional para la plataforma Java que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante ficheros declarativos (XML) que permiten establecer estas relaciones.
  6. 6. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3. Instalación y configuración de una herramienta ORM En este apartado vamos a instalar y configurar Hibernate en el entorno Eclipse. Para los ejemplos vamos a utilizar una base de datos MySQL de nombre EJEMPLO, cuyo propietario será el usuario ejemplo y la clave la misma que el nombre de usuario. La creación de las tablas es la siguiente:
  7. 7. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.1. Instalación y configuración de una herramienta ORM. Instalación del plugin. Para instalar el plugin de Hibernate para Eclipse se necesita tener conexión a Internet. Primero iniciamos Eclipse. Pulsamos en la opción del menú horizontal Help->Install New Software Rellenamos el campo Work With con la siguiente URL: http://download.jboss.org/jbosstools/updates/stable/ Pulsamos el botón Add Nos pide un nombre, escribimos, por ejemplo, Hibernate y pulsamos el botón Ok.
  8. 8. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.1. Instalación y configuración de una herramienta ORM. Instalación del plugin.  Al rato aparece la lista de plugins. Pulsamos en la flechita que aparece a la izquierda de Data Services y seleccionamos sólo Hibernate Tools, el resto de opciones las desmarcamos. Pulsamos el botón Next y comienza el proceso de descarga.  Una vez descargado, pulsamos de nuevo Next.  Aceptamos la licencia y pulsamos el botón Finish.  Comienza el proceso de instalación.  Una vez instalado nos pide reiniciar Eclipse.  Para comprobar que se ha instalado correctamente podemos pulsar en el menú Windows->Open Perspective->Other->Hibernate
  9. 9. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.2. Instalación y configuración de una herramienta ORM. Configuración del driver MySQL. Una vez instalado Hibernate, el siguiente paso es configurarlo para que se comunique con MySQL. En primer lugar hemos de descargarnos el driver MySQL desde la URL http://dev.mysql.com/downloads/connector/j/, en este caso se ha descargado el archivo mysql-connector-java-5.1.29.zip. Se descomprime y se instala en la carpeta donde está instalado el Eclipse. A continuación desde el menú Windows->Preferences->Data Management->Connectivity->Driver Definitions se pulsa el botón Add. Desde la pestaña Name/Type se selecciona MySQL JDBC Driver Desde la pestaña JAR List pulsamos el botón Add Jar/Zip y se selecciona el fichero mysql-connector-java-5.1.29- bin.jar que está en la carpeta que se descomprimió del driver.
  10. 10. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.2. Instalación y configuración de una herramienta ORM. Configuración del driver MySQL. A continuación vamos a crear un proyecto y configuraremos Hibernate para que se comunique con MySQL y nos cree las clases correspondientes de cada tabla de la base de datos EJEMPLO. Pulsamos en el menú File->New->Project->Java Project y pulsamos en Next, le damos nombre al proyecto y pulsamos en Finish. Agregamos el driver MySQL al proyecto, para ello seleccionamos nuestro proyecto, pulsamos el botón derecho del ratón y seleccionamos Build Paths->Add Libreries. Se visualiza una ventana desde la que hemos de elegir la opción Connectivity Driver Definition y pulsamos Next. En la siguiente ventana seleccionamos MySQL JDBC Driver y pulsamos el botón Finish.
  11. 11. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.3. Instalación y configuración de una herramienta ORM. Configuración de Hibernate. El siguiente paso será crear un fichero de configuración de Hibernate hibernate.cfg.xml. Sobre nuestro proyecto, pulsamos el botón derecho y hacemos click sobre New->Other->Hibernate->Hibernate Configuration File (cfg.xml). Este fichero contiene todo lo necesario para realizar la conexión a la base de datos. Previamente deberemos tener creada nuestra base de datos en MySQL.
  12. 12. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.3. Instalación y configuración de una herramienta ORM. Configuración de Hibernate. Pulsamos el botón Next y nos preguntará dónde crear el fichero, dejamos la carpeta por defecto src y volvemos a pulsar Next. A continuación escribiremos los datos para conectarnos a la base de datos. Los campos a rellenar son: Session Factory name: nombre de nuestra conexión a a MySQL Database Dialect: cómo se comunica JDBC. En nuestro caso elegiremos MySQL Driver Class: se selecciona la clase de JDBC que se va a usar para la conexión. Conection URL: ruta de la conexión a nuestra base de datos Username: usuario que se conectará a la base de datos Password: clave del usuario.
  13. 13. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.3. Instalación y configuración de una herramienta ORM. Configuración de Hibernate. Desde la pestaña Source se puede editar el fichero XML cfg.xml generado:
  14. 14. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.3. Instalación y configuración de una herramienta ORM. Configuración de Hibernate. Ahora hemos de crear el fichero XML Hibernate Console Configuration. Pulsamos el botón derecho en nuestro proyecto y seleccionamos New>Other->Hibernate->Hibernate Console Configuration. En la siguiente ventana, en el campo Name escribimos el nombre para nuestra configuración, por ejemplo ConfiguracionHibernate. En el campo Configuration file debe aparecer el fichero de configuración creado anteriormente (hibernate.cfg.xml)
  15. 15. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.3. Instalación y configuración de una herramienta ORM. Configuración de Hibernate. Finalmente, crearemos el fichero XML Hibernate Reverse Engineering (reveng.xml) que es el encargado de crear las clases de nuestras tablas MySQL. Pulsamos el botón derecho en nuestro proyecto y seleccionamos New->Other->Hibernate->Hibernate Reverse Engineering File (reveng.xml). Pulsamos Next y se nos pedirá que indiquemos dónde se va a guardar el fichero. Se debe guardar en la misma carpeta que el fichero hibernate.cfg.xml, en este caso, la carpeta src. En la siguiente ventana indicaremos las tablas que queremos mapear. Desde la lista Console configuration seleccionamos el nombre que le dimos al fichero Hibernate Console Configuration, en nuestro caso ConfiguracionHibernate y pulsamos el botón Refresh para que muestre la base de datos Ejemplo y sus tablas. Seleccionamos una a una todas las tablas y pulsamos el botón Include.
  16. 16. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.4. Generar las clases de la base de datos. A continuación vamos a generar las clases de nuestra base de datos Ejemplo. Para ello pulsamos en la flecha al lado del botón Run As y seleccionamos Hibernate Code Generation En la siguiente ventana configuramos los siguientes campos: Console Configuration: seleccionamos ConfiguracionHibernate Output directory: ha de ser la carpeta src Package: escribimos primero Reveng.xml: localizamos el fichero reveng.xml creado anteriormente. Se puede localizar pulsando en el botón Setup.
  17. 17. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.4. Generar las clases de la base de datos. Desde la pestaña Exporters se indica los ficheros que queremos generar. Se marcan las casillas: Domain code, Hibernate XML Mappins e Hibernate XML Configuration. Pulsamos el botón Apply y después el botón Run. Se nos generará un paquete llamado primero con las clases Java de las tablas EMPLEADOS y DEPARTAMENTOS así como un fichero xml para cada tabla con la información de mapeo.
  18. 18. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.5. Primera consulta en HQL. Para comprobar si la conexión a la base de datos funciona correctamente, vamos a realizar alguna consulta en HQL. Desde el menú Window->Open Perspective->Other->Hibernate abrimos las perspectiva de Hibernate. Desde la pestaña Hibernate pulsamos en nuestra configuración ConfiguraciónHibernate y pulsamos con el botón derecho del ratón en Database->HQL Editor. Escribimos el siguiente código HQL desde la pestaña ConfiguracionHibernate: from Empleados y pulsamos el botón para ejecutar la consulta. Desde este entorno también podemos realizar consultas al estilo SQL, por ejemplo: select dnombre, loc, depNo from Departamentos select empNo, apellido, salario from Empleados where dept_no = 10 Desde la perspectiva Hibernate y pulsando con el botón derecho en Configuration seleccionamos Mapping Diagram para visualizar el diagrama de mapeo entre las clases Java y las tablas de la base de datos.
  19. 19. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. Con la configuración realizada, aún no podemos empezar a programar en Java. Hemos de realizar los siguientes pasos: 1.Bajar la última distribución de Hibernate desde http://sourceforge.net/projects/hibernate/files/hibernate3/. 2.Creamos una carpeta dentro de Eclipse con nombre Hibernate. Descomprimimos el ZIP en esta carpeta. 3.Buscamos el fichero hibernate3.jar y lo copiamos en eclipseHibernate 4.Desde la carpeta eclipseHibernatehibernate-distribution-3.6.10.Finallibrequired seleccionamos todos los ficheros y los copiamos a nuestra carpeta eclipseHibernate 5.Desde la carpeta eclipseHibernatehibernate-distribution-3.6.10.Finallibjpa seleccionamos todos los ficheros y los copiamos a nuestra carpeta eclipseHibernate
  20. 20. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. 6. Bajar la última distribución de la librería slf4j desde la URL http://www.slf4j.org/download.html, lo descomprimimos y localizamos los ficheros slf4j-1.7.6.jar y slf4j-api-1.7.6.jar para copiarlos en la carpeta eclipseHibernate 7. Desde Eclipse, hacemos clic con el botón derecho en nuestro proyectoy pulsamos en Build Path->Add Libreries y elegimos User Librery. Pulsamos Next. 8. Pulsamos en User Libreries y a continuación en New. Nos pedirá el nombre de la librería que queremos agregar y escribimos, por ejemplo, HibernateLib. Pulsamos el botón OK. 9. Pulsamos el botón Add JARs y seleccionamos todos los JAR de nuestra carpeta Hibernate. Pulsamos el botón Abrir, despuñes Ok y por último, Finish. Con esto ya podemos crear el primer programa Java en nuestro proyecto que nos va a permitir comunicarnos con nuestra base de datos.
  21. 21. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En primer lugar, crearemos una instancia de la base de datos para poder trabajar con ella y que se utilizará a lo largo de toda la aplicación. Necesitaremos crear un singleton. El singleton es un patrón de diseño para restringir la creación de objetos pertenecientes a una clase. Su intención es garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella. El patrón singleton se implementa creando en nuestra clase un método que crea una instancia del objeto sólo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor (con atributos como protegido o privado).
  22. 22. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. Con esta clase podemos obtener la sesión actual desde cualquier parte de nuestra aplicación:
  23. 23. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En el siguiente código podemos ver un ejemplo de cómo insertar una fila en la tabla DEPARTAMENTOS:
  24. 24. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En el siguiente código podemos ver un ejemplo de cómo leer una fila en la tabla DEPARTAMENTOS:
  25. 25. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En el siguiente código podemos ver un ejemplo de cómo actualizar una fila en la tabla DEPARTAMENTOS:
  26. 26. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En el siguiente código podemos ver un ejemplo de cómo borrar una fila de la tabla DEPARTAMENTOS:
  27. 27. UT 4. HERRAMIENTAS DE MAPEO OBJETO RELACIONAL (ORM) 3.6. Programar con Hibernate en Eclipse. En el siguiente código podemos ver un ejemplo de cómo ejecutar una consulta HQL desde el código Java sobre la tabla DEPARTAMENTOS:

×