[BASE] Entidad y EntidadDB
He subido a github estas dos clases que son realmente la base del sistema de persistencia.
Resumen de las clases:
- Entidad (en el paquete net.sargue.base.dominio): una clase muy sencilla de base para derivar las clases de entidad con un sólo método getId() representando la clave primaria.
- BaseDB: clase de base con algunos métodos genéricos JDBC que incluso puede utilizarse sin el requerimiento del entero como clave primaria.
- EntidadDB: esta es la clase básica para gestionar entidades, y se define utilizado _generics _y asociada a una subclase de Entidad. Es la que implementa la mayoría de operaciones.La clase Entidad (en realidad es un simple interfaz) sólo obliga a disponer del método para leer el identificador del objeto ya que es el único requisito sobre los tipos de datos.La clase EntidadDB ya tiene chicha. Algo más del millar de líneas de código aunque, como se puede ver, con muchos métodos similares. Esta clase se parametriza con una subclase de Entidad. La idea es tener una de cada de estas para cada tabla o entidad en el dominio de nuestro problema. Por ejemplo, si nuestro sistema manipula clientes tendríamos la clase Cliente (implementando Entidad) y la clase ClienteDB (derivada de EntidadDB). Los nombres podrían ser cualquier, simplemente es cómodo usar un patrón similar.
En la clase derivada de EntidadDB tan sólo hay un método obligatorio para implementar, el que dado un puntero ResultSet devuelve un objeto del dominio.
A partir de ahi existen multitud de métodos para las operaciones más básicas de consultas y carga de registros, actualizaciones y borrados. La creación de registros debe implementarse desde cero.