Post on 15-Aug-2015
Contenido
● Introducción● ORM ● Herramientas● Hibernate● Estructura Hibernate● Aplicación● Consultas● Conclusión
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.
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).
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
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.
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.
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.
Archivos de mapeosHibernate 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.
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
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.
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.
Consultas Hibernate (3)
Criteria API● Solamente se puede utilizar para realizar consultas.● Orientada a Objetos
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.
Consultas Hibernate (6)
Sql nombradas: Las consultas SQL nombradas se pueden definir dentro del espacio de metadatos (Archivo XML).