Orm presentación final

22
Contenido ● Introducción ● ORM ● Herramientas ● Hibernate Estructura Hibernate ● Aplicación ● Consultas ● Conclusión

Transcript of Orm presentación final

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).

Herramientas

❖ Postgres❖ Eclipse❖ Jboss❖ Datamodeler ❖ Hibernate

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

Hibernate (2)

Hibernate (3)

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.

Modelo Relacional

Aplicación

Consultas Hibernate (1)

Existen 4 métodos:

● HQL● Criteria API● SQL nativo● SQL nombradas

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 (4)

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).

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.