Anda di halaman 1dari 23

Tutorial rapido de ObjectDB

M. en C. Sergio Luis Perez Perez

XICO, D. F. UAM C UAJIMALPA , M E Trimestre 12-O.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

1 / 23

a ObjectDB Introduccion

es ObjectDB? Que

es ObjectDB? I Que

ObjectDB es un manejador de bases de datos orientado a objetos. Provee de todos los servicios basicos para el manejo de bases de datos, pero usando la losof a orientada objetos para el almacenamiento. Los objetos pueden ser ntegramente almacenados y recuperados desde la base de datos. No se necesitan denir tablas o convertir los objetos en registros usando SQL o ORM (Oracle, DB2, SQL Server o MySQL).

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

2 / 23

a ObjectDB Introduccion

es ObjectDB? Que

es ObjectDB? II Que
Java Persistence API (JPA) Es un estandar para accesar a bases de datos (Oracle, DB2, SQL Server o MySQL) desde aplicaciones Java. JPA a diferencia de JDBC (Java Database Connectivity) permite tablas y representar datos de clases y objetos en lugar de solo registros. Object Relational Mapping (ORM) es el puente entre la de los datos en la base de datos relacional y la representacion de clases y objetos de aplicaciones Java. representacion ObjectDB tiene soporte integrado de JPA lo que permite que la capa intermedia de ORM sea eliminada.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

3 / 23

a ObjectDB Introduccion

es ObjectDB? Que

es ObjectDB? III Que


Java Data Objects (JDO) Es otro estandar para accesar a datos persistentes en bases de datos, utilizando clases simples que no dependen de un marco de trabajo en especial (Plain Old Java Object POJO) para representar el modelo de objetos. JDO fue disenado para usar bases de datos relacionales y bases de datos de objetos. ObjectDB puede ser manipulado por ambos: JPA y JDO. utilizado. JPA es mas

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

4 / 23

a ObjectDB Introduccion

es ObjectDB? Que

es ObjectDB? IV Que
Una opcion es utilizar JPA como API primaria y cambiar a JDO como API secundaria para las aplicar las funcionalidades que soporta JDO. solo JPA tiene mayor soporte (tutoriales, libros, codigo ejemplo). JDO puede ser sugerido si en determinado momento se desea portabilidad a ambos tipos de bases de datos. soporta bases de datos relacionales y ObjectDB. JPA solo ObjectDB requiere Java 5 o superior y y se puede utilizar sobre cualquier plataforma que soporte Java Standard Edition (JSE).

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

5 / 23

a ObjectDB Introduccion

es ObjectDB? Que

es ObjectDB? V Que
Java Development Kit (JDK) o Java Runtime Environment (JRE) pueden ser utilizados. tambien de ObjectDB para .NET. Actualmente se construye una version pues simplica la forma de ObjectDB agiliza la programacion conectarse a la base de datos. La curva de aprendizaje sobre ObjectDB es mas corta. No necesita instalarse, pues puede ser utilizado de modo embebido.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

6 / 23

Manual rapido de ObjectDB

de clases Denicion

de clases Denicion
Para denir una clase (utilizando JPA) se necesita denir una representar objetos en la base de entity class lo cual permitira datos. @Entity public class Nombre Clase { } El almacenamiento de un objeto en la base de datos NO almacena los metodos ni el codigo, sino solo el estado del objeto y en particular solo los datos de tipo persistente. Por defecto cualquier campo que no es declarado como estatico (static) o transitorio (transient) es persistente (persistent). ObjectDB soporta IDs impl citos por lo que no es necesario denir PK.
Sergio Luis Perez (UAM C UAJIMALPA) Curso de bases de datos avanzadas 7 / 23

Manual rapido de ObjectDB

a la base de datos Conexion

a la base de datos I Conexion

mediante JPA a la base de datos requiere una La conexion interfaz EntityManager. Aquellas operations que modican la base de datos requieren una instancia de tipo EntityTransaction. de una unidad de persistencia en un JPA requiere la denicion archivo XML con el n de generar una EntityManagerFactory para pero con ObjectDB basta con proporcionar establecer la conexion, la ruta donde se encuentran almacenados los objetos: EntityManagerFactory emf = Persistence.createEntityManagerFactory(Nombre entidad.(odb o objectdb));

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

8 / 23

Manual rapido de ObjectDB

a la base de datos Conexion

a la base de datos II Conexion


Para cerrar la base se usa la misma instancia EntityManagerFactory: emf.close(); a la base se utiliza la instancia de Para realizar la conexion EntityManager: EntityManager em = emf.createEntityManager(); em.close(); se requiere: Para comenzar una transaccion em.getTransaction().begin(); em.getTransaction().commit(); es activa se pueden invocar metodos Mientras la transaccion que modican el contenido de la base de datos.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

9 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos I
Las operaciones que modican el contenido de la bases de datos activa. requieren una transaccion activa Mediante el metodo persist, asociado a una transaccion generada por una instancia de EntityManager, es posible realizar el almacenamiento de objetos persistentes. Empleado empleado = new Empleado(Sergio, Perez); em.getTransaction().begin(); em.persist(empleado); em.getTransaction().commit(); El nuevo objeto de la entidad Empleado es almacenado cuando la es autorizada (commit). transaccion
Sergio Luis Perez (UAM C UAJIMALPA) Curso de bases de datos avanzadas 10 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos II
de tipo IllegalArgumentException es lanzada por Una excepcion persist si el argumento no es una instancia de una clase. Solamente instancias de clases pueden ser almacenadas en la base de datos de forma independiente. Objetos que poseen a su vez como campos a otro tipo de objetos pueden ser almacenados de modo embebido. persistentes solo Empleado empleado = new Empleado(Sergio, Perez); direccion = new Direccion(Gladiolas, Direccion Tultepec); empleado.establecerDireccion(direcci on); em.getTransaction().begin(); em.persist(empleado); em.getTransaction().commit();
Sergio Luis Perez (UAM C UAJIMALPA) Curso de bases de datos avanzadas 11 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos III


es denida como una clase embebida en Si la clase Direccion automaticamente Empleado, entonces el objeto Empleado sera como un objeto almacenado junto con la instancia de su Direccion embebido. de tipo TransactionRequiredException es lanzada Una excepcion activa cuando el metodo si no existe una transaccion persist es invocado. Si la base de datos ya contiene un objeto con la misma llave de tipo primaria que el objeto a insertar entonces una excepcion EntityExistsException es lanzada ya sea por el metodo persist o al realizar el commit.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

12 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos IV

Almacenamiento de varios objetos (Completo) em.getTransaction().begin(); for (int i = 1; i <= n; i++) { Empleado empleado = new Empleado(nombre[i], apellido[i]); direccion = new Direccion(calle[i], Direccion colonia[i]); empleado.establecerDireccion(direcci on); em.persist(empleado); } em.getTransaction().commit();

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

13 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos V
en Almacenamiento de varios objetos (En bloques -actualizacion memoria-) em.getTransaction().begin(); for (int i = 1; i <= n; i++) { Empleado empleado = new Empleado(nombre[i], apellido[i]); direccion = new Direccion(calle[i], Direccion colonia[i]); empleado.establecerDireccion(direcci on); em.persist(empleado); if((i %100) == 0){ em.ush(); em.clear(); } } em.getTransaction().commit();
Sergio Luis Perez (UAM C UAJIMALPA) Curso de bases de datos avanzadas 14 / 23

Manual rapido de ObjectDB

Almacenamiento de objetos

Almacenamiento de objetos VI
en base Almacenamiento de varios objetos (En bloques -actualizacion de datos-) em.getTransaction().begin(); for (int i = 1; i <= n; i++) { Empleado empleado = new Empleado(nombre[i], apellido[i]); direccion = new Direccion(calle[i], Direccion colonia[i]); empleado.establecerDireccion(direcci on); em.persist(empleado); if((i %100) == 0){ em.getTransaction().commit(); em.clear(); em.getTransaction().begin(); } } em.getTransaction().commit();
Sergio Luis Perez (UAM C UAJIMALPA) Curso de bases de datos avanzadas 15 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA I

El termino de tipos persistentes se reere a todos aquellos tipos de datos que pueden ser almacenados en una base de datos. ObjectDB puede almacenar todos los tipos persistentes de JPA:
Clases denidas por el usuario: clases de tipo entidad (Entity), superclases asociadas y clases de tipo embebido Embeddable. Tipos de datos simples de Java: tipos primitivos, wrappers, cadenas (string, fechas (Date), etc. Tipos de Colecciones (Collections), diccionarios (Maps) y arreglos (Arrays). Otros tipos: enumeradores (Enum) y tipos serializables denidos por el usuario o por el sistema.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

16 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA II


Clases de tipo entidad import javax.persistence.Entity; @Entity public class MiEntidad { ... } Nombre de una clase de tipo entidad @Entity(name=MiNombre) public class MiEntidad { ... }

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

17 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA III

Clases embebidas @Embeddable { public class Direccion String calle; String ciudad; String estado; String pa s; String cp; }

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

18 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA IV

Tipos de datos simples de Java Tipos primitivos: boolean, byte, short, char, int, long, oat y double. Clases equivalentes wrapper que se encuentran en java.lang: Boolean, Byte, Short, Character, Integer, Long, Float y Double. java.math.BigInteger, java.math.BigDecimal. java.lang.String. java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

19 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA V

Tipos de fecha y hora @Entity public class FechaYHora { java.sql.Date fecha1; @Temporal(TemporalType.DATE) java.util.Date fecha2 @Temporal(TemporalType.DATE) java.util.Calendar fecha3; java.sql.Time hora1; @Temporal(TemporalType.TIME) java.util.Date hora2; @Temporal(TemporalType.TIME) java.util.Calendar hora3;

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

20 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA VI

Tipos de fecha y hora

java.sql.Timestamp fechaYHora1; @Temporal(TemporalType.TIMESTAMP) java.util.Date fechaYHora2; @Temporal(TemporalType.TIMESTAMP) java.util.Calendar fechaYHora3 java.util.Date fechaYHora4; // no es JPA portable java.util.Calendar fechaYHora5; }// no es JPA portable

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

21 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA VII


Tipos multi valor Cuando una entidad es recuperada de la base de datos, la lista de campos es instanciada a un ArrayList. realizar el cambio al Utilizar una interfaz para el campo permitira requerida por la entidad. tipo de colleccion JPA puede utilizar java.util.Collection, java.util.List y java.util.Set, java.util.Map para este proposito.
java.util.List: ArrayList, Vector, Stack, LinkedList, ArrayDeque, PriorityQueue. java.util.Set: HashSet, LinkedHashSet, TreeSet. java.util.Map: HashMap, Hashtable, WeakHashMap, IdentityHashMap, LinkedHashMap, TreeMap, Properties.

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

22 / 23

Manual rapido de ObjectDB

Tipos de datos persistentes de JPA

Tipos de datos persistentes de JPA VIII


Enumeradores Los valores de un enumerador son representados internamente por numeros ordinales. es mejor Si se requiere agregar mas campos de enumeracion agregarlos al nal, es decir con un mayor numero ordinal. @Entity public class Colores { Color color1; // default is EnumType.ORDINAL @Enumerated(EnumType.ORDINAL) Color color2; @Enumerated(EnumType.STRING) Color color3; } enum Color { ROJO, VERDE, AZUL };

Sergio Luis Perez (UAM C UAJIMALPA)

Curso de bases de datos avanzadas

23 / 23

Anda mungkin juga menyukai