ebook Hibernate Framework

Curso de Hibernate Framework
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 1. Introducción a Hibernate
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 1. Introducción a Hibernate
Lección 1. Introducción a Hibernate
•Un
framework es un conjunto de clases que nos permiten
resolver un problema en específico.
•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 aplicación Java.
Hibernate es utilizado en proyectos muy diversos, como
pueden ser en Instituciones Bancarias, Aseguradoras,
Instituciones Educativas y de Gobierno, entre mucho giros
más.
Curso de Hibernate Framework
Lección 1. Introducción a Hibernate
Concepto de ORM (Object Relational Mapping)
•
Persistencia: Al persistir información podremos acceder
a la misma, incluso posterior a que el proceso o la
aplicación termine de ejecutarse.
•
Bases de Datos Relacionales: Una base de datos
relacional nos permite guardar la información 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 técnica en lenguajes
Orientados a Objetos para mapear objetos de Entidad en
tablas de una Base de Datos relacional.
Curso de Hibernate Framework
Lección 1. Introducción a Hibernate
Arquitectura Multicapas
Curso de Hibernate Framework
Lección 2. Configuración de Hibernate
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 2. Configuración de Hibernate
Aplicación Web (PersonasWeb)
•Crear
una aplicación Web utilizando JSP’s y Servlets
•Utilizar
el patrón de diseño MVC para la capa de
presentación
•Reutilizar
el código creado de la capa de datos para
administrar el catálogo de la tabla de personas
•La
aplicación 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 según
la figura siguiente:
Curso de Hibernate Framework
Lección 1. Introducción a Hibernate
Arquitectura Aplicación PersonasWeb
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 3. Mapeo de Asociaciones
Lección 3. Mapeo de Asociaciones
•Las
asociaciones en Hibernate son las mismas que se
manejan en la teoría de bases de datos relacionales

1a1

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.
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Ejemplo de Relación 1 a 1
(Un Alumno tiene Un Domicilio)
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Ejemplo de Relación 1 a Muchos
(Un Instructor imparte Muchos Cursos)
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Ejemplo de Relación Muchos a Muchos
(Un Alumno tiene Muchos Cursos y un Curso tiene
Muchos Alumnos)
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Normalización de Relación Muchos a Muchos
a Relación 1 a Muchos (Uso tabla transitiva)
Curso de Hibernate Framework
Lección 3. Mapeo de Asociaciones
Esquema Entidad-Relación del SGA
(Sistema de Gestión de Alumnos)
Curso de Hibernate Framework
Lección 4. Ciclo de Vida en Objetos de Entidad
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 4. Ciclo de Vida en Objetos de Entidad
Lección 4. Ciclo de Vida en Objetos de Entidad
Curso de Hibernate Framework
Lección 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 están 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 están asociados con una Sesión y son
transaccionales. Su estado se sincroniza con la BD al terminar la
transacción.
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 transacción se convierten en
detached una vez que termina la transacción
Curso de Hibernate Framework
Lección 4. Ciclo de Vida en Objetos de Entidad
Persistir un Objeto en Hibernate
Curso de Hibernate Framework
Lección 4. Ciclo de Vida en Objetos de Entidad
Recuperar un Objeto Persistente en Hibernate
Curso de Hibernate Framework
Lección 4. Ciclo de Vida en Objetos de Entidad
Modificar un Objeto Persistente en Hibernate
Lección 4. Ciclo de Vida en Objetos de Entidad
Modificar un Objeto Persistente con Sesión Larga
Curso de Hibernate Framework
Lección 4. Ciclo de Vida en Objetos de Entidad
Eliminar un Objeto Persistente en Hibernate
Lección 4. Ciclo de Vida en Objetos de Entidad
Persisistencia en Cascada
Laboratorio
Crear una aplicación 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 dirección y
datos de contacto, tales como teléfono e e-mail, utilizando el
concepto de persistencia en Cascada.

Utilizar el proyecto de PersistenciaCascada para utilizar los objetos
DAO ya creados.
Arquitectura Multicapas
Curso de Hibernate Framework
Lección 5. Ejecución de Consultas HQL
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 5. Ejecución de Consultas HQL
Lección 5. Ejecución de Consultas HQL
Hibernate Query Language ( HQL)

Lenguaje de Consulta, similar a SQL pero utilizando objetos Java.

Queries Parametrizables

Consola de Ejecución en IDE’s como Eclipse o MyEclipse

Consultas Avanzadas con recuperación de colecciones de datos
Características de HQL

Uso de select, from y where y subselects

Sensible a Mayúsculas/Minúsculas

Asociaciones, uso de joins y fetch

Uso de expresiones y operadores como: +, >, between, upper, etc

Uso de Funciones de agregación, tales como: avg, sum, count, etc

Uso de order by, group by
Curso de Hibernate Framework
Lección 6. Consultas con el API de Criteria
Ing. Ubaldo Acosta Soto
www.globalmentoring.com.mx
[email protected]
Lección 6. Consultas con el API de Criteria
Lección 6. Consultas con API Criteria
API Criteria (Hibernate Query API)

El API de Criteria es una alternativa al uso de HQL o SQL Nativo

Permite la combinación de campos de criterio complejos (ej. Una
pantalla de búsqueda avanzada)

Permite crear queries dinámicos complejos más fácilmente
Características del API de Criteria

Existe el concepto de Query by Example, el cual facilita la búsqueda
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
características más.
Curso de Hibernate Framework
Lección 6. Consultas con el API de Criteria
Query by Example (QBE)

El lenguaje HQL aunque maneja una sintaxis muy simplificada,
aplica muy bien solo para queries estáticos

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 dinámicos, orientados a búsquedas
avanzadas

Se pueden combinar varios objetos DTO para filtrar todavía más los
queries a ejecutar. Evitando agregar restricciones al QBC
Curso de Hibernate Framework