SlideShare una empresa de Scribd logo
1 de 11
Mapeadores Objeto-Relacional
(ORM)
ORM
 Un ORM o Mapeador Objeto-Relacional es un
framework que propone una nueva forma de modelar los
datos, y que permite solucionar la diferencia que existe
entre los paradigmas de la POO (Programación
Orientada a Objetos) y el modelo Relacional.
 El modelo Relacional trata con relaciones y conjuntos
por lo cual tiende a ser de carácter matemático, mientras
que el modelo de la POO trata con objetos y las
asociaciones entre ellos; el problema entre estos dos
modelos surge en el momento de querer persistir los
objetos de negocio.
ORM
 Escritura mediante JDBC  abrir una conexión, crear una
sentencia en SQL y copiar todos los valores de las
propiedades de un objeto en la sentencia, ejecutarla y así
almacenar el objeto.
 Sencillo para un caso simple.
 Complicado si el objeto posee muchas propiedades, o bien se
necesita almacenar un objeto que a su vez posee una colección de
otros elementos. Se necesita crear mucho más código, además del
tedioso trabajo de creación de sentencias SQL.
 Lectura mediante JDBC  mismo problema que la escritura.
 Este problema se conoce con el nombre de “Impedancia
Objeto-Relacional”  conjunto de dificultades técnicas que
surgen cuando una base de datos relacional se usa en
conjunto con un programa escrito bajo POO.
ORM
 Ejemplo de “Impedancia Objeto-Relacional”
 Objeto Agenda Telefónica con atributo una
colección de objetos de la clase Persona, en la
que a cada persona le corresponde su
correspondiente atributo “teléfono”.
 Al transformar esto a relacional se ocuparía más
de una tabla para almacenar la información 
varias sentencias sql y mucho código.
ORM
 ¿Por qué necesitamos un ORM?
ORM
 Los ORMs (además de mapear)
 Permiten reducir susceptiblemente el código necesario para
llevar a cabo las operaciones de persistencia y recuperación de
objetos
 Proporcionan interfases más simples para el manejo de objetos
a través de su propio lenguaje de consulta
 Proveen al programador de configuraciones que le permiten
optimizar los tiempos de respuesta en sus correspondientes
aplicaciones
 ORMs más conocidos
 Hibernate  Código libre
 Toplink  Oracle
 JPA (viene con EJB 3.0 y toma las ideas de Hibernate)  Sun
ORM
 Una herramienta ORM trata de hacer todas estas
operaciones de mapeo pesadas por nosotros.
 Con una buena ORM, sólo tendremos que definir la
forma en la que establecemos la correspondencia entre
las clases y las tablas una sola vez (indicando que
propiedad se corresponde con que columna, que clase
con que tabla, etc.).
 Después de esto, podremos utilizar los objetos de
nuestra aplicación y decirle a nuestra ORM que los haga
persistentes, con una instrucción similar a:
orm.save(myObject).
ORM - Hibernate
 Herramienta para la Java que facilita el mapeo de atributos
entre una base de datos relacional y el modelo de objetos de
una aplicación, mediante archivos declarativos (XML) que
permiten establecer estas relaciones.
 Parte de una filosofía de mapear objetos Java "normales",
también conocidos en la comunidad como "POJOs" (Plain Old
Java Objects).
 Proporciona un potente lenguaje de consultas (HQL):
subqueries, outer joins, ordering, proyección (report query),
paginación, etc.
 Lenguaje intermedio que según la base de datos que usemos y
el dialecto que especifiquemos será traducido al SQL
dependiente de cada base de datos de forma automática y
transparente.
ORM – Hibernate
 Hibernate distingue entre objetos tipo transient y
tipo persistent
 Transient: objetos que sólo existen en memoria y no en
un almacén de datos. En algunos casos, no serán
almacenados jamás en la base de datos y en otros es
un estado en el que se encuentran hasta ser
almacenados en ella. Han sido instanciados por el
desarrollador sin haberlos almacenado mediante una
sesión.
 Persistent: objetos que ya han sido almacenados y, por
tanto, son objetos persistentes. Han sido creados y
almacenados mediante una sesión o bien devueltos en
una consulta realizada con la sesión.
ORM – Hibernate
 Para almacenar y recuperar objetos de la base de datos, el
desarrollador debe mantener una conversación con el
motor de Hibernate mediante un objeto especial, quizás el
concepto clave más importante dentro Hibernate, que es la
Sesión (clase Session).
 Un Session se puede equiparar a grandes rasgos al
concepto de conexión de JDBC y cumple un papel muy
parecido, es decir, sirve para delimitar una o varias
operaciones relacionadas dentro de un proceso de
negocio, demarcar una transacción y aporta algunos
servicios adicionales.
 La clase Session ofrece métodos como save(Object
object), createQuery(String queryString),
beginTransaction(), close(), etc. para interactuar con la BD.
 La clase que permite crear sesiones se denomina
SessionFactory.
Paradigmas
 Struts + JDBC
 Struts + EJB
 Struts + Hibernate

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Manual hibernate v2
Manual hibernate v2Manual hibernate v2
Manual hibernate v2
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Hibernate - JPA @luce 5
Hibernate - JPA @luce 5Hibernate - JPA @luce 5
Hibernate - JPA @luce 5
 
BDOO
BDOOBDOO
BDOO
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Java persitence api
Java persitence apiJava persitence api
Java persitence api
 
Sesion03 apuntes
Sesion03 apuntesSesion03 apuntes
Sesion03 apuntes
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernate
 
Practica01 db4o e1
Practica01 db4o e1Practica01 db4o e1
Practica01 db4o e1
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Curso Sql - Conceptos
Curso Sql -  ConceptosCurso Sql -  Conceptos
Curso Sql - Conceptos
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQL
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Jpa vs hibernate
Jpa vs hibernateJpa vs hibernate
Jpa vs hibernate
 
Sql Server
Sql ServerSql Server
Sql Server
 
Sql
SqlSql
Sql
 

Similar a Conceptos de hibernate (20)

presentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxpresentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptx
 
Hibernate
HibernateHibernate
Hibernate
 
Introducción a ORMs
Introducción a ORMsIntroducción a ORMs
Introducción a ORMs
 
Mapeo objeto relacional
Mapeo objeto relacionalMapeo objeto relacional
Mapeo objeto relacional
 
Mapeo de objeto relacional
Mapeo de objeto relacionalMapeo de objeto relacional
Mapeo de objeto relacional
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Mapeo de objeto relacional
Mapeo de objeto relacionalMapeo de objeto relacional
Mapeo de objeto relacional
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Orm final
Orm finalOrm final
Orm final
 
Base de datos
Base de datosBase de datos
Base de datos
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
Smbdoo
SmbdooSmbdoo
Smbdoo
 
Manual hibernate
Manual hibernateManual hibernate
Manual hibernate
 
Spring orm
Spring ormSpring orm
Spring orm
 
Orm hibernate springframework
Orm hibernate springframeworkOrm hibernate springframework
Orm hibernate springframework
 
Base de datos
Base  de datosBase  de datos
Base de datos
 
Nhibernate
NhibernateNhibernate
Nhibernate
 
Trabajo bdoo
Trabajo bdooTrabajo bdoo
Trabajo bdoo
 
Bases de datos mas populares
Bases de datos mas popularesBases de datos mas populares
Bases de datos mas populares
 
Act. 4 screencast y base de datos norma
Act. 4 screencast y base de datos normaAct. 4 screencast y base de datos norma
Act. 4 screencast y base de datos norma
 

Conceptos de hibernate

  • 2. ORM  Un ORM o Mapeador Objeto-Relacional es un framework que propone una nueva forma de modelar los datos, y que permite solucionar la diferencia que existe entre los paradigmas de la POO (Programación Orientada a Objetos) y el modelo Relacional.  El modelo Relacional trata con relaciones y conjuntos por lo cual tiende a ser de carácter matemático, mientras que el modelo de la POO trata con objetos y las asociaciones entre ellos; el problema entre estos dos modelos surge en el momento de querer persistir los objetos de negocio.
  • 3. ORM  Escritura mediante JDBC  abrir una conexión, crear una sentencia en SQL y copiar todos los valores de las propiedades de un objeto en la sentencia, ejecutarla y así almacenar el objeto.  Sencillo para un caso simple.  Complicado si el objeto posee muchas propiedades, o bien se necesita almacenar un objeto que a su vez posee una colección de otros elementos. Se necesita crear mucho más código, además del tedioso trabajo de creación de sentencias SQL.  Lectura mediante JDBC  mismo problema que la escritura.  Este problema se conoce con el nombre de “Impedancia Objeto-Relacional”  conjunto de dificultades técnicas que surgen cuando una base de datos relacional se usa en conjunto con un programa escrito bajo POO.
  • 4. ORM  Ejemplo de “Impedancia Objeto-Relacional”  Objeto Agenda Telefónica con atributo una colección de objetos de la clase Persona, en la que a cada persona le corresponde su correspondiente atributo “teléfono”.  Al transformar esto a relacional se ocuparía más de una tabla para almacenar la información  varias sentencias sql y mucho código.
  • 5. ORM  ¿Por qué necesitamos un ORM?
  • 6. ORM  Los ORMs (además de mapear)  Permiten reducir susceptiblemente el código necesario para llevar a cabo las operaciones de persistencia y recuperación de objetos  Proporcionan interfases más simples para el manejo de objetos a través de su propio lenguaje de consulta  Proveen al programador de configuraciones que le permiten optimizar los tiempos de respuesta en sus correspondientes aplicaciones  ORMs más conocidos  Hibernate  Código libre  Toplink  Oracle  JPA (viene con EJB 3.0 y toma las ideas de Hibernate)  Sun
  • 7. ORM  Una herramienta ORM trata de hacer todas estas operaciones de mapeo pesadas por nosotros.  Con una buena ORM, sólo tendremos que definir la forma en la que establecemos la correspondencia entre las clases y las tablas una sola vez (indicando que propiedad se corresponde con que columna, que clase con que tabla, etc.).  Después de esto, podremos utilizar los objetos de nuestra aplicación y decirle a nuestra ORM que los haga persistentes, con una instrucción similar a: orm.save(myObject).
  • 8. ORM - Hibernate  Herramienta para la Java que facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones.  Parte de una filosofía de mapear objetos Java "normales", también conocidos en la comunidad como "POJOs" (Plain Old Java Objects).  Proporciona un potente lenguaje de consultas (HQL): subqueries, outer joins, ordering, proyección (report query), paginación, etc.  Lenguaje intermedio que según la base de datos que usemos y el dialecto que especifiquemos será traducido al SQL dependiente de cada base de datos de forma automática y transparente.
  • 9. ORM – Hibernate  Hibernate distingue entre objetos tipo transient y tipo persistent  Transient: objetos que sólo existen en memoria y no en un almacén de datos. En algunos casos, no serán almacenados jamás en la base de datos y en otros es un estado en el que se encuentran hasta ser almacenados en ella. Han sido instanciados por el desarrollador sin haberlos almacenado mediante una sesión.  Persistent: objetos que ya han sido almacenados y, por tanto, son objetos persistentes. Han sido creados y almacenados mediante una sesión o bien devueltos en una consulta realizada con la sesión.
  • 10. ORM – Hibernate  Para almacenar y recuperar objetos de la base de datos, el desarrollador debe mantener una conversación con el motor de Hibernate mediante un objeto especial, quizás el concepto clave más importante dentro Hibernate, que es la Sesión (clase Session).  Un Session se puede equiparar a grandes rasgos al concepto de conexión de JDBC y cumple un papel muy parecido, es decir, sirve para delimitar una o varias operaciones relacionadas dentro de un proceso de negocio, demarcar una transacción y aporta algunos servicios adicionales.  La clase Session ofrece métodos como save(Object object), createQuery(String queryString), beginTransaction(), close(), etc. para interactuar con la BD.  La clase que permite crear sesiones se denomina SessionFactory.
  • 11. Paradigmas  Struts + JDBC  Struts + EJB  Struts + Hibernate