Hola a todos, hoy os voy a explicar como filtrar datos en una base de datos 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.
Vamos a usar la clase Persona para 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");
Para filtrar objetos con DB4O necesitamos un objeto de ejemplo para que lo filtre por ello. Vamos a ver varios ejemplos.
Si quisiéramos mostrar todos los objetos de una base de datos:
// Todas las personas Persona p = new Persona(); ObjectSet<Persona> result = db.queryByExample(p); System.out.println("Todas las personas"); while (result.hasNext()) { System.out.println(result.next()); }
Mandando un objeto vacio es suficiente.
Resultado:
Si queremos filtrar por un atributo en concreto, tendremos que darle valor a ese atributo en concreto:
// Todas las personas con la edad de 30 p = new Persona(null, 30, 0, 0); result = db.queryByExample(p); System.out.println("Personas con 30 años"); while (result.hasNext()) { System.out.println(result.next()); }
También vale si se le da valor a un atributo en concreto.
Resultado:
Si fueran dos parámetros, lo haríamos así:
// Todas las personas con la edad de 30 y 1.73cm de altura p = new Persona(null, 30, 1.73, 0); result = db.queryByExample(p); System.out.println("Personas con 30 años y 1.73cm de altura"); while (result.hasNext()) { System.out.println(result.next()); }
Resultado:
Si queremos una persona con un nombre en concreto:
// Todas las personas llamadas Domingo p = new Persona("Domingo", 0, 0, 0); result = db.queryByExample(p); System.out.println("Personas llamada Domingo"); while (result.hasNext()) { System.out.println(result.next()); }
Resultado:
Espero que os sea de ayuda. Si tenemos dudas, preguntad. Estamos para ayudarte.
Deja una respuesta