Professional Documents
Culture Documents
BD Relacional BD OO …
APLICACIÓN JAVA
JDBC API
JDBC Driver Manager
JDBC Driver JDBC Driver
ORACLE SQL
SERVER
class Jefe Jefe
extends Empleado
{ VARCHAR2 id
String nombre; VARCHAR2 nombre
ArrayList Empleados; VARCHAR2 id_empleado
…
}
Objeto DESAJUSTE
Java
Capa de abstracción entre el modelo
de dominio y la BD que realiza la
traducción.
API de operaciones en objetos persistentes.
Lenguaje de consulta.
Propiedades
Hibernate HIBERNATE Mapeo XML
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
Objetos
PERSISTENTES
Session Factory
Session Transaction
Hibernate
Transaction soporta multitud de Bases de Datos
Connector
Factory
(ORACLE,Provider
MySQL, SQL Server, …)
JDBC JNI JTA
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
Objetos
JDBC (Java DataBase PERSISTENTES
Connectivity)
Session
permite Factory
a Hibernate comunicarse
con la BD subyacente.Session Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
JNI (Java Native Interface)
Objetosproporciona a
PERSISTENTES
Hibernate
Session la capacidad de interactuar con
Factory
programas escritos enSession
otros lenguajes.Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
JTA (Java Transaction API) permite al
Objetos
gestor de transacciones comunicarse
PERSISTENTES
Session Factory con las partes involucradas en entornos
Session
distribuidos Transaction
transaccionales.
Transaction Connector
Factory Provider
BASE DE DATOS
Objetos en memoria
Encargado de
APLICACIÓN
(Transient Objects) especificar unidades de
trabajo atómicas.
Objetos
PERSISTENTES
Session Factory
Session Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
APLICACIÓN
Objetos en memoria
Representa
(Transient Objects)
una conversación
entre la aplicación y el
Objetos
almacenamiento persistente.
PERSISTENTES
Session Factory
Session Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
• Caché de mapeos compilados para una sola BD.
• Fábrica APLICACIÓN
Objetosdeen objetos
memoria Session.
• Proveedor de conexiones.
(Transient Objects)
• Opcionalmente cache de 2º nivel de datos reusables.
Objetos
PERSISTENTES
Session Factory
Session Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
Objetos
PERSISTENTES
Session Factory
Session Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
APLICACIÓN
Objetos en memoria
(Transient Objects)
Objetos
PERSISTENTES
Session
ObjetosFactory
que finalmente
se tratan en la Session
aplicación Transaction
Transaction Connector
Factory Provider
BASE DE DATOS
Forma clásica de definición de entidades y relaciones
Clase Java
(fichero .java)
Correspondencia entre
Propiedades y asociaciones del
Objeto/s Java y Entidad/es de
la BD
(fichero XML)
Forma clásica de definición de entidades y relaciones
Fichero Persona.java
class Persona {
private Float dni;
private String nombre;
private Set<Persona> amigos = new HashSet<Persona>();
@Id (generate=GeneratorType.AUTO)
public Float getDni(){return this.dni};
@Column(name=“nombre",length=50)
public String getNombre(){return this.nombre};
Mantenimiento reducido
Hibernate ahorra líneas de código, reduciendo el coste de
mantenimiento.
JDBC requiere más mantenimiento.
Rendimiento optimizado
Hibernate implementa el uso de cachés.
En JDBC se deben implementar manualmente.
Mayor mantenibilidad
Al tener menos líneas el código es más comprensible.
Mejor rendimiento
Hibernate está optimizado para los diferentes SGBD
que soporta. Al ahorrar tiempo de desarrollo permite
dedicar más tiempo a optimizaciones.
Artículos O’Reilly
James Elliot (2005). “What is Hibernate”
Wikipedia
Java Persistence Api (JPA). Hibernate.