Patrón DAO (Data Access Object)

El patrón DAO consiste en separar los detalles de comunicación con la base de datos en clases o módulos dedicados. La información se gestiona como objetos Java (Libro, Autor…) mientras que la capa de persistencia puede cambiarse sin afectar al resto de la aplicación.

Ventajas:

  • Separación de responsabilidades: la lógica de negocio no conoce los detalles de acceso a datos
  • Flexibilidad para cambiar el SGBD sin reescribir la aplicación
  • Facilita la distribución del trabajo en equipo

Aplicación de ejemplo: gestión de libros

La aplicación permite:

  • Listar todos los libros
  • Buscar libros por título o precio
  • Mostrar los autores asociados a cada libro

Arquitectura de clases

Diagrama de clases de la aplicación con DAO

La arquitectura propuesta separa las clases en capas:

  • Clases de modelo (Libro, Autor): representan las entidades de la base de datos como objetos Java con sus atributos y métodos get/set.
  • Clases DAO (LibroDAO, AutorDAO): contienen toda la lógica de acceso a la base de datos (consultas SQL, conexión, ResultSet…).
  • Clase de utilidad (Conexion): centraliza la creación y cierre de la conexión a la base de datos.
  • Interfaz de usuario (Main): usa las clases DAO sin conocer los detalles de la base de datos.

Esta separación permite, por ejemplo, sustituir MySQL por PostgreSQL simplemente modificando las clases DAO y la cadena de conexión, sin tocar el resto del código.