Está en la página 1de 24

http://osum.sun.

com/group/springperu

http://spring.pe

Spring ORM

Mayer Horna García


mayer@lima-ti.com
mayer.horna@gmail.com
http://www.linkedin.com/in/mayerhorna
http://mayerhorna.blogspot.com
15 de Marzo de 2010
@mayerhorna
Objetivos
• Entender:
▫ Que es Spring ORM
▫ Que es Hibernate
▫ La importancia de Hibernate
▫ Como se integra Hibernate con Spring Framework
Agenda
• Spring ORM
• Evolución del código para acceso a datos
• ¿Por qué usar un ORM?
• ¿Qué es Hibernate?
• ¿Por qué usar Hibernate?
• Demos con Hibernate
• Demo con integración de Hibernate y Spring
Spring ORM
Spring ORM
Recordando JDBC

Evolución …
Se ve mejor con con Spring - JDBC
Se ve mucho mejor con el soporte
de spring para hibernate
¿Porqué usar un ORM(Object/Relational Mapping) en nuestra
aplicación?
 Una parte importante de cualquier aplicación es la capa de persistencia.
 Poder acceder y manipular data de una base de datos relacional.

 ORM se encarga del problema Objetos-BD Relacional:


 La data vive en el base de datos relacional, la cual es manejado por tablas(con registros y
columnas).

 Nosotros queremos trabajar con objetos, no con registros y columnas de tablas.


¿Qué es Hibernate?
• Es un ORM para habilitar la persistencia de POJOs.
▫ Te permite trabajar sin verte limitado por el modelo de datos
relacional. Lo que busca es crear una base de datos orientada a
objetos.

• Te permite crear objetos persistentes siguiendo los


conceptos de programación OO
▫ Asociación.
▫ Herencia.
▫ Polimorfismo.
▫ Composición.
▫ Collection API para “many” relationship
¿Por qué usar Hibernate?
• Permite a los desarrolladores centrarse en el modelamiento de
dominio.
• Performance.
▫ Caché de objetos de alto rendimiento.
▫ Configurable formas de cómo plantear estrategias de
persistencia.
• Sofisticadas facilidades para las consultas
▫ Criteria API
▫ Query By Example (QBE)
▫ Hibernate Query Language (HQL)
▫ Native SQL
Arquitectura de Hibernate
Demos de Introducción a Hibernate
* Persiste una Bean Evento en tabla evento:
Proyecto:
- 00HibernateGrabarEvento
Demos de Introducción a Hibernate
* Estrategias para Generación de Claves Primarias:
Proyectos:
- 01HibernateGrabarClienteKeyByIncrement
- 02HibernateGrabarClienteKeyBySequence
- 03HibernateGrabarClienteKeyByExternalClass
Demos de Introducción a Hibernate
* Mapping
Proyectos:
- 04HibernateManyToOne
- 05HibernateOneToMany
- 06HibernateManyToMany
Demos de Introducción a Hibernate
* Herencia
Proyectos:
- 07HibernateClassHierarchyMappingTablePerSubclass
Demos de Introducción a Hibernate
* Consultas a la base de datos con Criteria
Proyectos:
- 08HibernateCriteriaQueryWithRestriction
- 09HibernateCriteriaQueryProjection
- 10HibernateCriteriaQueryFetchModes
Demos de Introducción a Hibernate
* Consultas a la base de datos con HQL
Proyectos:
- 11HibernateHQLQuery
Integración de Hibernate con Spring:

Necesitamos crear un bean sessionFactory que depende del bean dataSource, el cual
especifica con base de datos se va a trabajar.
En el bean sessionFactory, se indica donde están los archivos de mapeo (*.hbm.xml ). y de
este dependen los componentes de acceso a datos (Daos):
Demos de Integración Hibernate-Spring
* Proyecto Spring sin Hibernate:
- hibernate_and_spring-start
Demos de Integración Hibernate-Spring
* Proyecto Spring con Hibernate:
- hibernate_and_spring-solution
Links de referencia

• Web oficial de hiberante


▫ https://www.hibernate.org/

• API de hibernate 3
▫ https://www.hibernate.org/hib_docs/v3/api/

• Hibernate Reference Documentantion


▫ http://docs.jboss.org/hibernate/stable/core/reference/en/html/
Preguntas
http://osum.sun.com/group/springperu

http://spring.pe

Gracias
Mayer Horna García
mayer@lima-ti.com
mayer.horna@gmail.com
http://www.linkedin.com/in/mayerhorna
http://mayerhorna.blogspot.com
@mayerhorna

También podría gustarte