Como actualizar datos en una base de datos DB4O

Hola a todos, hoy os explicaré como podemos actualizar datos en nuestra base de datos DB4O.

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, yo no lo he encontrado en ningún sitio en concreto, por lo que os lo dejo para que lo descarguéis aquí.

Recuerda que debes agregar el JAR al proyecto, te dejo un manual como se hace por si no lo sabes:

Como usar Netbeans

Vamos a usar la clase Persona 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 + '}';
    }

}

En este caso, ya tenemos datos en la base de datos, estos son:

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

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

Imaginemos que quiero recuperar el objeto con el nombre “Fernando” y actualizarlo.

 

Para recuperarlo, lo haremos así:

// Obtenemos el objeto deseado
Persona p = new Persona("Fernando", 0, 0, 0);
ObjectSet<Persona> result = db.queryByExample(p);

Si existe, actualizaremos el objeto:


// Si existe el objeto
if (result.hasNext()) {
    // Obtengo el objeto persona
    Persona pAct = result.next();

    // Actualizo el objeto
    pAct.setEdad(35);

    // Guardamos el objeto de nuevo, actualizandolo
    db.store(pAct);
}

Como puedes ver volvemos a usar el método store, eso es porque si le pasamos un objeto que existe, este se actualizará.

Ahora, mostramos todos los objetos:

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

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

Este es el resultado:

Recuerda siempre de cerrar la base de datos:

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

Te dejo un vídeo 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.

Etiquetas

Deja un comentario

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