La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro.

Presentaciones similares


Presentación del tema: "Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro."— Transcripción de la presentación:

1 Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro

2 Hibernate Core – Clase 1 Hibernate Core  Porque debemos conocer Hibernate?  Conceptos necesarios  Persistencia Relacional con Hibernate  Las capas de Hibernate  La Arquitectura de Hibernate La arquitectura Mínima La arquitectura Completa Los Componentes de la arquitectura  Los estados de una instancia  Arquitectura de una aplicación que usa Hibernate  Practica

3 Hibernate Core – Clase 1 Porque debemos conocer hibernate?  Para conocer un framework que nos permita persistir nuestros objetos de dominio en una base de datos relacional.  Para conocer el funcionamiento de un framework de persistencia objeto-relacional.  Para desarrollar aplicaciones java profesionales.

4 Hibernate Core – Clase 1 Conceptos necesarios  POJO: Plain Old Java Object. Se usa este nombre para enfatizar que se trata de un objeto java simple, en particular que no se trata de Enterprise Java Bean  Java Bean: se usa este nombre para identificar a un objeto que tiene sus atributos definidos como private, que permite el acceso a sus atributos mediante accessors públicos, que tiene un constructor sin argumentos y que implementa la interfaz serializable.

5 Hibernate Core – Clase 1 Conceptos necesarios  Thread-safe: se dice que un pedazo de código es thread-safe, cuando es seguro de ejecutarse concurrentemente por múltiples hilos (threads)‏  Single-Threaded: se dice que un pedazo de código es single-threaded, cuando es ejecutado por un único hilo en cualquier momento.

6 Hibernate Core – Clase 1 Persistencia Relacional con Hibernate  Históricamente, Hibernate ha facilitado el almacenamiento y recuperación de objetos de dominio java mediante el mapeo objeto-relacional.  Actualmente, Hibernate es una colección de proyectos relacionados que permiten a los desarrolladores utilizar modelos de dominio del estilo POJO en sus aplicaciones.

7 Hibernate Core – Clase 1 Las capas de Hibernate

8 Hibernate Core – Clase 1 La arquitectura de Hibernate

9 Hibernate Core – Clase 1 La arquitectura de Hibernate  La arquitectura mínima

10 Hibernate Core – Clase 1 La arquitectura de Hibernate  La arquitectura completa

11 Hibernate Core – Clase 1 La arquitectura de Hibernate  Los componentes de la arquitectura. SessionFactory: es una cache, inmutable y thread-safe, que contiene los mapeos compilados de una base de datos. Es una factoría de objetos Session. Es un cliente de ConnectionProvider. Session: es un objeto single-threaded de vida corta que representa la conversación entre la aplicación y almacenamiento persistente. Envuelve una conexión JDBC. Es una factoría de objetos Transaction. Mantiene un cache de objetos persistentes.

12 Hibernate Core – Clase 1 La arquitectura de Hibernate  Los componentes de la arquitectura. Persistent objects and collections: son objetos single-thread de vida corta que tienen un estado persistente y funciones de negocio. Están asociados exactamente a una única Session. Una vez que la session es cerrada serán detachados y libres de usar por cualquier aplicación. Transient and detached objects and collections: son objetos de clases persistentes que no están asociados a una Session. Transaction: es un objeto single-thread de vida corta utilizado para especificar unidades de trabajo atómicas. Abstrae a la aplicación de la transacción subyacente (JDBC, JTA). Una Session puede ejecutar varias transacciones. La demarcación de una transacción no es opcional

13 Hibernate Core – Clase 1 La arquitectura de Hibernate  Los componentes de la arquitectura. ConnectionProvider: es una factoría y pool de conexiones JDBC. Abstrae a la aplicación de los Datasource o DriverManager subyacentes. TransactionFactory: es una factoría para instancias de Transaction. No esta expuesta a la aplicación, pero puede ser extendida o implementada por el desarrollador. Extension Interfaces: es un rango de interfaces de extensión opcionales que el desarrollador puede utilizar para customizar el comportamiento de la capa de persistencia.

14 Hibernate Core – Clase 1 Los estados posibles de una instancia  Se definen en base a su relación con el contexto de persistencia (el objeto Session de Hibernate). Transient: la instancia no esta asociada a ningún contexto de persistencia. No tiene un identificador de persistencia o PK. Persistent: la instancia esta asociada a un contexto de persistencia. Tiene un identificador de persistencia y puede corresponderse con un registro de la base de datos. Detached: la instancia estuvo asociada a un contexto de persistencia, pero el contexto de persistencia fue cerrado, o la instancia fue serializada por otro proceso. Tiene un identificador de persistencia y puede corresponderse con un registro de la base de datos.

15 Hibernate Core – Clase 1 Arquitectura de una aplicación que usa Hibernate

16 Hibernate Core – Clase 1 La clase de dominio  Es una clase java.  Es un java bean o POJO.  Requiere de un constructor sin argumentos.  Es conveniente que tenga un atributo para definir el id.  Puede tener definido comportamiento, sin embargo no es conveniente salvo excepciones.

17 Hibernate Core – Clase 1 El archivo de Mapeo  Esta definido en xml  Define la relación objeto relacional  Relaciona cada campo de la tabla con un atributo de la clase de dominio.  Define las relaciones del modelo relacional como asociaciones entre clases.  Por defecto ningún atributo de la clase de dominio es considerado persistente.

18 Hibernate Core – Clase 1 El archivo de configuración  Puede ser archivo properties o un xml (recomendado)‏  Define el componente SessionFactory.  Define la conexión JDBC.  Define el dialecto SQL.  Define los arhivos de mapeo que utilizara.

19 Hibernate Core – Clase 1 Startup y Helper  Para inicializar Hibernate es util crearse una clase HibernateUtil que nos permite obtener el contexto de persistencia (SessionFactory)‏ public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } public static SessionFactory getSessionFactory() { return sessionFactory; }

20 Hibernate Core – Clase 1 Las Implementaciones de DAOs  Son implementaciones de las interfaces definidas para la realización de operaciones CRUD.  Una implementación de DAO con hibernate debería tener un método como el siguiente: private void createAndStoreEvent(String title, Date theDate) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); Event theEvent = new Event(); theEvent.setTitle(title); theEvent.setDate(theDate); session.save(theEvent); session.getTransaction().commit(); }

21 Hibernate Core – Clase 1 Los Servicios  Son la implementación del patrón de diseño Facade  Implementan toda la lógica de negocios  Están compuestos por las interfaces DAOS, a través de las cuales realizan las operaciones CRUD con las clases de dominio.  Permiten la separación por capas de la capa de modelo.

22 Hibernate Core – Clase 1 Practica  Realizar el ejemplo definido en el tutorial de hibernate 3.5.1


Descargar ppt "Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro."

Presentaciones similares


Anuncios Google