documenthb

31
Ing. Ubaldo Acosta Soto www.globalmentoring.com.mx [email protected] Curso de Hibernate Framework

Upload: david-soto

Post on 25-Nov-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Curso de Hibernate Framework

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 1. Introduccin a Hibernate

  • Leccin 1. Introduccin a Hibernate

    Curso de Hibernate Framework

    Un framework es un conjunto de clases que nos permiten resolver un problema en especfico. Hibernate es un framework ( www.hibernate.org ) que implementa el concepto ORM. Hibernate resuelve muchos de los problemas que se presentan en la capa de datos de una aplicacin Java. Hibernate es utilizado en proyectos muy diversos, como pueden ser en Instituciones Bancarias, Aseguradoras, Instituciones Educativas y de Gobierno, entre mucho giros ms.

    Leccin 1. Introduccin a Hibernate

  • Concepto de ORM (Object Relational Mapping)

    Curso de Hibernate Framework

    Persistencia: Al persistir informacin podremos acceder a la misma, incluso posterior a que el proceso o la aplicacin termine de ejecutarse.

    Bases de Datos Relacionales: Una base de datos

    relacional nos permite guardar la informacin de nuestras aplicaciones en tablas relacionales.

    Objetos de Entidad: Existen algunos objetos Java que se deben guardar y recuperar de una Base de Datos. A estas clases Java se les conoce como clases de Entidad.

    Concepto de ORM: Es una tcnica en lenguajes

    Orientados a Objetos para mapear objetos de Entidad en tablas de una Base de Datos relacional.

    Leccin 1. Introduccin a Hibernate

  • Curso de Hibernate Framework

    Arquitectura Multicapas

    Leccin 1. Introduccin a Hibernate

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 2. Configuracin de Hibernate

  • Aplicacin Web (PersonasWeb)

    Curso de Hibernate Framework

    Crear una aplicacin Web utilizando JSPs y Servlets

    Utilizar el patrn de diseo MVC para la capa de

    presentacin

    Reutilizar el cdigo creado de la capa de datos para

    administrar el catlogo de la tabla de personas

    La aplicacin debe manejar el listado de personas.

    Nota: Se crear una capa de Servicio muy simple, con el

    objetivo de separar las capas de nuestra arquitectura segn

    la figura siguiente:

    Leccin 2. Configuracin de Hibernate

  • Curso de Hibernate Framework

    Arquitectura Aplicacin PersonasWeb

    Leccin 1. Introduccin a Hibernate

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 3. Mapeo de Asociaciones

  • Leccin 3. Mapeo de Asociaciones

    Curso de Hibernate Framework

    Las asociaciones en Hibernate son las mismas que se

    manejan en la teora de bases de datos relacionales

    1 a 1

    1 a Muchos o Muchos a 1

    Muchos a Muchos

    Hibernate soporta las relaciones mencionadas en los

    archivos de mapeo de cada clase de Entidad.

    Leccin 3. Mapeo de Asociaciones

  • Curso de Hibernate Framework

    Ejemplo de Relacin 1 a 1

    (Un Alumno tiene Un Domicilio)

    Leccin 3. Mapeo de Asociaciones

  • Curso de Hibernate Framework

    Ejemplo de Relacin 1 a Muchos

    (Un Instructor imparte Muchos Cursos)

    Leccin 3. Mapeo de Asociaciones

  • Curso de Hibernate Framework

    Ejemplo de Relacin Muchos a Muchos

    (Un Alumno tiene Muchos Cursos y un Curso tiene

    Muchos Alumnos)

    Leccin 3. Mapeo de Asociaciones

  • Curso de Hibernate Framework

    Normalizacin de Relacin Muchos a Muchos

    a Relacin 1 a Muchos (Uso tabla transitiva)

    Leccin 3. Mapeo de Asociaciones

  • Curso de Hibernate Framework

    Esquema Entidad-Relacin del SGA (Sistema de Gestin de Alumnos)

    Leccin 3. Mapeo de Asociaciones

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 4. Ciclo de Vida en Objetos de Entidad

  • Leccin 4. Ciclo de Vida en Objetos de Entidad

    Curso de Hibernate Framework

    Leccin 4. Ciclo de Vida en Objetos de Entidad

  • Curso de Hibernate Framework

    Leccin 4. Ciclo de Vida en Objetos de Entidad

    Estado Transitivo (Transient):

    Los objetos de entidad nuevos NO son guardados directamente en la

    Base de Datos (BD).

    No estn asociados con un registro de BD.

    Se consideran NO transaccionales.

    Estado Persistente (Persistent)

    Un objeto persistente tiene asociado un registro en la BD.

    Los objetos persistentes siempre estn asociados con una Sesin y son

    transaccionales. Su estado se sincroniza con la BD al terminar la

    transaccin.

    Estado Separado (Detached)

    Estos objetos tienen asociado un registro de BD, pero su estado no est

    sincronizado con la BD

    Todos los objetos recuperados en una transaccin se convierten en

    detached una vez que termina la transaccin

  • Curso de Hibernate Framework

    Leccin 4. Ciclo de Vida en Objetos de Entidad

    Persistir un Objeto en Hibernate

  • Curso de Hibernate Framework

    Leccin 4. Ciclo de Vida en Objetos de Entidad

    Recuperar un Objeto Persistente en Hibernate

  • Leccin 4. Ciclo de Vida en Objetos de Entidad

    Modificar un Objeto Persistente en Hibernate

  • Leccin 4. Ciclo de Vida en Objetos de Entidad

    Modificar un Objeto Persistente con Sesin Larga

    Curso de Hibernate Framework

  • Leccin 4. Ciclo de Vida en Objetos de Entidad

    Eliminar un Objeto Persistente en Hibernate

  • Leccin 4. Ciclo de Vida en Objetos de Entidad

    Persisistencia en Cascada

  • Laboratorio

    Crear una aplicacin Web

    Listar el contenido de la tabla de alumnos.

    Crear las opciones para agregar, editar y eliminar un nuevo alumno.

    En las opciones de agregar y editar se debe agregar una pantalla

    que permita capturar los valores del alumno junto con su direccin y

    datos de contacto, tales como telfono e e-mail, utilizando el

    concepto de persistencia en Cascada.

    Utilizar el proyecto de PersistenciaCascada para utilizar los objetos

    DAO ya creados.

  • Curso de Hibernate Framework

    Arquitectura Multicapas

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 5. Ejecucin de Consultas HQL

  • Leccin 5. Ejecucin de Consultas HQL

    Curso de Hibernate Framework

    Leccin 5. Ejecucin de Consultas HQL

    Hibernate Query Language ( HQL)

    Lenguaje de Consulta, similar a SQL pero utilizando objetos Java.

    Queries Parametrizables

    Consola de Ejecucin en IDEs como Eclipse o MyEclipse

    Consultas Avanzadas con recuperacin de colecciones de datos

    Caractersticas de HQL

    Uso de select, from y where y subselects

    Sensible a Maysculas/Minsculas

    Asociaciones, uso de joins y fetch

    Uso de expresiones y operadores como: +, >, between, upper, etc

    Uso de Funciones de agregacin, tales como: avg, sum, count, etc

    Uso de order by, group by

  • Ing. Ubaldo Acosta Soto

    www.globalmentoring.com.mx [email protected]

    Leccin 6. Consultas con el API de Criteria

  • Leccin 6. Consultas con API Criteria

    Curso de Hibernate Framework

    Leccin 6. Consultas con el API de Criteria

    API Criteria (Hibernate Query API)

    El API de Criteria es una alternativa al uso de HQL o SQL Nativo

    Permite la combinacin de campos de criterio complejos (ej. Una

    pantalla de bsqueda avanzada)

    Permite crear queries dinmicos complejos ms fcilmente

    Caractersticas del API de Criteria

    Existe el concepto de Query by Example, el cual facilita la bsqueda

    de registros de cierta clase de Entidad

    Se utilizan clases de Java en lugar de cadenas HQL o SQL

    Permite utilizar expresiones, joins, ordenamiento, entre muchas

    caractersticas ms.

  • Query by Example (QBE)

    Curso de Hibernate Framework

    Leccin 6. Consultas con el API de Criteria

    El lenguaje HQL aunque maneja una sintaxis muy simplificada,

    aplica muy bien solo para queries estticos

    El lenguaje HQL es una cadena, no clases de Java, ello implica

    manipular la cadena para ir agregando restricciones al query

    QBE, en conjunto con el API de Criteria (QBC), permite tomar como

    ejemplo un objeto DTO y filtrar con esos datos el query a ejecutar

    Se utiliza para generar queries dinmicos, orientados a bsquedas

    avanzadas

    Se pueden combinar varios objetos DTO para filtrar todava ms los

    queries a ejecutar. Evitando agregar restricciones al QBC