Persistencia de Datos
JAVA
Persistencia de datos
Conceptos básicos
Almacenamiento de la información después de
finalizar el programa.
La mayoría de los programas actuales necesitan
preservar los datos para posterior uso.
El sistema más común se basa en bases de datos
relacionales.
Mapeo entre BD relacional y objetos de aplicación.
Persistencia de datos
Problema
Mapeode Objetos (estructura jerárquica) a Base
de Datos Relacional (estructura tabular) y viceversa.
Persistencia de datos
Problema
Asociaciones, Herencia, Polimorfismo, Cascada,
Cache, Lazy Loading, Paginación, etc.
JDBC
(Java Database Connectivity)
JDBC
Conceptos básicos
API que permite la ejecución de operaciones sobre
bases de datos desde Java.
Independiente del sistemaoperativo y de la base
de datos.
Utiliza el dialecto SQL del modelo de base de datos
que se utilice.
JDBC
Arquitectura JDBC
JDBC
Controladores JDBC
Son adaptadores del lado-cliente para convertir las
peticiones desde los programas Java a un protocolo
que pueda entender DBMS.
Controladores comerciales y libres para la mayoría
de las bases de datos. 4 tipos:
• Tipo 1:Puente JDBC-ODBC
• Tipo 2: Controlador nativo de la API
• Tipo 3: Controlador de protocolo de red
• Tipo 4: Controlador nativo de protocolo
JDBC
EJEMPLOS JDBC
ORM
(Object-Relational Mapping)
ORM
Conceptos básicos
Mapeo objeto-relacional (Object-Relational
mapping, O/RM, ORM o O/R mapping)
Técnica de programación para convertir datos
entre un lenguaje de programación OO yel utilizado
en una BD relacional.
Utiliza un motor de persistencia. En la práctica crea
una base de datos virtual orientada a objetos, sobre
la base de datos relacional.
ORM
¿Dónde actúa?
JavaObject
int id;
String name;
String getName()
int getId()
void setName(String)
void setId(int)
SQL Table
id [int] primary key,
name [varchar(50)]
La función de un
O/R Mapper tienelugar aquí
ORM
Objetivos de un ORM
Garantizar persistencia de objetos:
• Conexiones JDBC + Consultas SQL
Problemas:
• Objetos con muchas propiedades
• Asociaciones: gestión automática vs. gestión
manual.
• Claves foráneas.
• Restricciones de integridad.
ORM
¿Qué ofrece?
Definir el mapeo en un único punto.
Persistencia directa de objetos:
• orm.save(myObject);
Cargaautomática de objetos:
• myObjecto = orm.load(MyObject.class,objectId)
Buen lenguaje de consultas:
• List myObjects = orm.find( "FROM MyObject
object WHERE object.property = 5");
ORM
Ejemplos
Hibernate.
JDO 2.0.
Etc.
JDO
(Java Data Objects)
JDO
Conceptos básicos
Intenta solventar problema de persistencia y
mapeo objeto-a-datos y datos-a-objeto.
API queproporciona una forma estándar y sencilla
de conseguir la persistencia de objetos.
Permite trabajar con objetos POJOs (plain old Java
objects) en lugar de con APIs propietarios.
JDO
Esquema
JDO
Implementaciones no comerciales
JPOX: Implementación de referencia. Actualmente
es DataNucleus.
JDOInstruments.
Apache JDO.
Speedo.
TJDO
JDO
Implementaciones comerciales
JORM
Kodo
ObjectDB for Java/JDO
Orient
hywy's PE:J
SignSoft intelliBO (Signsoft intelligent Business
Objects)
Versant
JDO
PersistenceCapable
En la mayoría de implementaciones de JDO se
necesita añadir la persistencia a las clases
compiladas.
Enhancer (“mejorador”): Herramienta que agrega
automáticamente código para hacer persistentes las
clases desarrolladas.
Esta modificación de la clase compilada (bytecode)
conserva perfectamente los números de línea en
seguimientos de pila y no afecta a la depuración.
JDO
Enhancer (“Mejorador”)
1. Se crea la clase (Magazine.java en el ejemplo)
2. Se compila la clase.
3 Se ejecuta el Enhancer sobre la clase compilada
JDO
EJEMPLOS JDO
JPA
(Java Persistence API)
JPA
Conceptos básicos
Java...
Regístrate para leer el documento completo.