3 ObjectDB¶
Introducción¶
ObjectDB es un administrador de sistemas de base de datos orientada a objetos (ODBMS), de software propietario, pero que ofrece una versión gratuita limitada para su estudio.
Una de las ventajas de este sistema es que ofrece JPA como interfaz para el programador y dispone de un entorno gráfico para consultar y actualizar los datos. Este entorno gráfico, admite la realización de consultas con JPQL.
Proyecto ObjectDB¶
Para comenzar, configuramos el pom.xml
de la siguiente manera:
<!-- ... -->
<repositories>
<repository>
<id>objectdb</id>
<name>ObjectDB Repository</name>
<url>https://m2.objectdb.com</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.objectdb</groupId>
<artifactId>objectdb</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<!-- ... -->
Creamos nuestra clase POJO:
@Entity
public class Point implements Serializable {
@Id @GeneratedValue
private long id;
private int x;
private int y;
public Point(){}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public long getId() {
return id;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public String toString() {
return "Point{" +
"id=" + id +
", x=" + x +
", y=" + y +
'}';
}
}
Y nuestro main
:
public class Main {
public void show() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("p2.odb");
EntityManager em = emf.createEntityManager();
// Guardar punto
em.getTransaction().begin();
em.persist(new Point(10, 10));
em.getTransaction().commit();
// Query
Query q = em.createQuery("SELECT p FROM Point p", Point.class);
System.out.println(q.getResultList());
}
public static void main(String[] args) {
new Main().show();
}
}
Como se puede observar no ha sido necesario crear un archivo de configuración persistence.xml, ya que no necesito decirle al proveedor la relación de clases. Únicamente indico el fichero odb
donde se almacenará los datos.