Java Swing – Ejemplo de uso con db4o

Este ejemplo tiene 3 paquetes con 4 clases en total. Representa una mini-librería:

com.booksellerdb4o.data

com.booksellerdb4o.domain

  • Libro: Es el objeto que guardaremos en la base de datos db4o. Contiene los atributos y métodos necesarios para acceder al objeto y guardar/leer datos.

com.booksellerdb4o.view

  • BookSeller: Clase principal del proyecto que ejecuta la conexión la base de datos. Tiene un campo de texto que filtra los datos de un JTable. Accede a la otra clase y elimina objetos.
  • EditBook: Clase que puede crear o editar según que botón se haya pulsado en la clase BookSeller.

Vamos a entrar un poquito mas a fondo en cada clase, sin explicar todo:

DataConnection

Esta clase está explicada en un ejemplo anterior: Java y Java Swing – Patrón Singleton en db4o

Libro

Es una clase simple que es el objeto que se crea para almacenar en db4o. Contiene atributos y métodos getters y setters únicamente.

BookSeller

Ésta clase es la principal del proyecto. Contiene un JTextField que permite filtrar los datos de un JTable al escribir y pulsar enter. Funciona como un LIKE, ya que filtra por nombre, pero por fragmentos, no por el nombre entero.

Contiene también 4 botones: Nuevo y edita (llama a la ventana EditBook), elimina que sale un JOptionPane preguntando si se quiere eliminar o no, y un botón Salir que sale del programa.

Si profundizamos un poco más vemos como se hace el filtro:

Al pulsar enter llama a un método que en parte contiene:

Esta clase también permite eliminar los objetos directamente desde la tabla, con el código siguiente:

También tiene otras cosas como abrir otras ventanas pasando parámetros:

EditBook

Esta clase recibe parámetros para saber si estamos editando o creando (un boolean). Hace consultas a la base de datos db4o para comprobar por ejemplo que el ISBN no exista antes de crearlo:

y guarda datos:

También rellena los datos en sus respectivos campos si estamos editando:

Todo esto y mas cosas como por ejemplo:

  • Ventanas modales para que no se pueda tocar la ventana de detras, y que se actualice la tabla al cerrar la ventana de edición/creación
  • Evitar la edición de celdas de JTable con isCellEditable
  • Vaciar un JTable

El ejemplo lo podéis encontrar aqui:

booksellerdb4o_www.tutorial-es.com

Dudas en los comentarios.

Deja un comentario

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