2. Introducción
● La programación Orientada a Objeto en la actualidad se utiliza con
mucha frecuencia dentro de la programación, muchos lenguajes están
diseñados OO, debido a las propiedades que posee.
● Para la mayoría de las aplicaciones, almacenar y recuperar información
implica alguna forma de interacción con una base de datos relacional.
Esto ha representado un problema fundamental para los desarrolladores
porque algunas veces el diseño de datos relacionales y los ejemplares
orientados a objetos comparten estructuras de relaciones muy diferentes
dentro de sus respectivos entornos.
3. ORM (Mapeo Objeto Relacional)
● Es una técnica de programación para convertir datos entre el sistema de
tipos utilizado en un lenguaje de programación orientado a objetos y la
utilización de una base de datos relacional como motor de persistencia.
● En la práctica esto crea una base de datos orientada a objetos virtual,
sobre la base de datos relacional.
● Esto posibilita el uso de las características propias de la orientación a
objetos (básicamente herencia y polimorfismo).
5. Hibernate
¿Qué es hibernate?
➔ Herramienta para lograr la persistencia de datos.
➔ Es una herramienta para ORM.
➔ Es de software libre.
➔ Archivos Declarativos.
➔ Es una herramienta de Mapeo objeto-relacional para la plataforma Java
8. Estructura Hibernate
Hibernate utiliza archivos XML para lograr el mapeo.
Se tiene dos tipos de archivos.
● Los tipos de archivos de configuración: Determina todo
aspecto relacionado con la base de datos (conexión,
por ejemplo).
● Los archivos que definirán el mapeo.
9. Estructura: Clase POJOs
POJO, es una simple clase de Java. Significa: Plain Old Java Object, que
contiene métodos get y set para cada uno de los atributos.
En cada clase, se declaran las entidades de la base de datos con sus
respectivos get y set.
10. Archivo de Configuración
El archivo de configuración (hibernate.cfg.xml) está constituido principalmente por:
Nombre de la propiedad Uso
hibernate.connection.driver_class JDBC driver class
hibernate.connection.url JDBC URL
hibernate.connection.username Nombre del usuario de la base de datos
hibernate.connection.password Contraseña para acceder a la base de datos.
hibernate.dialect Permite a Hibernate generar SQL optimizado
para una determinada base de datos
relacional.
11. Archivos de mapeos
Hibernate usa metadatos de mapeo para saber como cargar y almacenar objetos de la
clase persistente.
<hibernate-mapping> : Elemento raíz que contiene todos los elementos de la clase.
<class> Los elementos de esta clase, son usados para definir mapeos de la clase de java
a la tabla de base datos.
<id>: Contener la ID única en la clase para la clave primaria de la base de datos.
12. Archivos de mapeos
<generator>: Se utiliza para generar valores automáticamente en la clave principal.
<generator class="native"/>
“native”, se utiliza para que hibernate elija cualquier identidad, ya sea secuencia u
otra.
“Assigned”, “sequence”, etc.
<property>: Se usa para asignar una propiedad de clase Java a una columna de la base de datos.
<property name="firstName" column="first_name" type="string"/>
● El atributo name, como siempre hace referencia a la propiedad de la clase.
● El atributo column, se refiere a la columna en la tabla de base datos.
● El atributo type, tiene el tipo de mapeo para hibernate, este tipo de mapeo se convertirá de
Java a un tipo de datos SQL
13. Archivos de mapeos
Relaciones:
● <many-to-one>
● <one-to-one>
● <one-to-many>
● <many-to-many>
Herencia:
● Tabla por jerarquía de clases.
● Tabla por subclase.
● Tabla por clase concreta.
17. Consultas Hibernate (2)
HQL: Hibernate utiliza un lenguaje de consulta potente (HQL) que se
parece a SQL. Sin embargo, comparado con SQL, HQL es
completamente orientado a objetos y comprende nociones como
herencia, polimorfismo y asociación.
20. Consultas Hibernate (5)
SQL nativa: Hibernate permite realizar
consultas casi idénticas a las SQL, a través de
este método puede utilizar las tablas
directamente.
21. Consultas Hibernate (6)
Sql nombradas: Las consultas SQL nombradas
se pueden definir dentro del espacio de
metadatos (Archivo XML).
22. Conclusión
● La técnica XML, posee una forma es más legible, pero
a la vez compleja.
● Seleccionar de forma correcta el método de herencia.
● Los métodos de consulta poseen mejores ventajas en
ciertas condiciones necesarias.