Como crear una base de datos DB4O

Hola a todos, hoy os voy a explicar como crear un fichero DB4O con db4o.jar.

DB4O es una base de datos orientada a objetos en un fichero, algo parecido a como es SQL Lite pero sin ser orientado a objetos.

Lo primero que necesitarás es el JAR de DB4O, podéis agregar la dependencia en apache netbeans. Aquí lo puedes descargar.

Como agregar dependencias en Apache Netbeans

Vamos a usar la clase Persona para insertar en la base de datos:


public class Persona {

    private String nombre;
    private int edad;
    private double peso;
    private double altura;

    public Persona() {
    }

    public Persona(String nombre, int edad, double peso, double altura) {
        this.nombre = nombre;
        this.edad = edad;
        this.peso = peso;
        this.altura = altura;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public double getPeso() {
        return peso;
    }

    public void setPeso(double peso) {
        this.peso = peso;
    }

    public double getAltura() {
        return altura;
    }

    public void setAltura(double altura) {
        this.altura = altura;
    }

    @Override
    public String toString() {
        return "Persona{" + "nombre=" + nombre + ", edad=" + edad + ", peso=" + peso + ", altura=" + altura + '}';
    }

}

Lo primero que tenemos que hacer es crear la conexión con DB4O:

// Creamos la conexión
ObjectContainer db = Db4oEmbedded.openFile("personas.db4o");

Vamos a crear unos cuantos objetos Persona de prueba:

 

// Creamos los objetos
Persona p1 = new Persona("Fernando", 30, 1.73, 73);
Persona p2 = new Persona("Pepe", 30, 1.75, 80);
Persona p3 = new Persona("Alfredo", 20, 1.9, 90);
Persona p4 = new Persona("Roberto", 35, 1.70, 70);
Persona p5 = new Persona("Domingo", 30, 1.73, 80);

Ahora lo tenemos que guardar los objetos con el método store.

// Guardamos los objetos en la base de datos
db.store(p1);
db.store(p2);
db.store(p3);
db.store(p4);
db.store(p5);

Ahora recuperamos todos los objetos con el siguiente código:

// Obtenemos y mostramos todos los objetos
Persona p = new Persona();
ObjectSet<Persona> result = db.queryByExample(p);

while (result.hasNext()) {
    System.out.println(result.next());
}

Lo que hacemos es crear un objeto vació para que con el método queryByExample y esto hace que nos devuelva todos los objetos de la base de datos.

 

Este es el resultado:

Recuerda siempre de cerrar la base de datos:

// Cerramos la base de datos
db.close();

Recuerda que si lo ejecutas varias veces, se te irán metiendo varias veces.

También ten en cuenta que si lo llevas a otro proyecto diferente puede ser que te encuentres con problemas, esto es porque la dirección del objeto esta también en el paquete, por eso te recomiendo que reinicies la base de datos (borrando el fichero) al cambiarlo de proyecto.

Te dejo un video para guiarte aún más:

Te dejo aquí el ejemplo para descargar.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *