Aplicación Gestión de clientes (Guiada)

Vamos a realizar una aplicación para gestionar el alta, baja y actualización de una lista de clientes utilizando el lenguaje Java para su realización y con persistencia de datos mediante MySQL.

Para realizar la aplicación se ha utilizado el IDE Eclipse con el pluging de WindowBuldier para la realización de los elementos de la interfaz gráfica.

Se ha utilizado el patrón de MVC para la estructura de la clase y los patrones de diseño DAO  y el modelo Singleton para la capa de persistencia.

 

La aplicación consta de las siguientes clases:

Inicio: Clase controladora con el  main que contiene el código para lanzar la aplicación.

Altas: Clase del paquete Vista, con los elementos de la interfaz.

Clientes: Clase del modelo de datos, donde se define la estructura del cliente.

DaoCliente: Clase con los métodos de persistencia para la gestión de la información en la BD. Siguiendo el modelo Singleton.

Descripción de las clases y métodos más importantes.

Vista

Para realizar la interfaz se ha utilizado el plugin para Eclipse windowBuldier, con el cual se ha ido incorporando los paneles y elementos para interactuar con el usuario.

La interfaz esta compuesta principalmente de elementos Text Field además de un combobox y una tabla.

 TextField:

La inserción de los Tex Fields se ha realizado con el pluging, donde se ha cambiado el nombre (variable) del elemento y se ha puesto un label para identificarlo.

Combo

La realización del combo se ha realizado insertando el elemento e incorporando los elementos en el Array del código.

Tabla

En el caso de la tabla se ha realizado un método para poder reutilizar el código cada vez que se modifican los datos al realizar una actualización, inserción o borrado de un elemento.

Para las acciones nos encontramos con tres botones:

Guardar

Como podemos observar en el código anterior, el evento del botón hace una llamada al método de guardado en la misma clase.

En la función vemos como realiza tanto el guardado como la actualización según sea el caso. Para ello diferencia la acción mediante la comprobación del ID. En el caso de la actualización primero se selecciona un elemento de la lista mostrada en la tabla, con la cual se obtiene el Id del elemento seleccionado. Esto se produce al hacer click en un elemento de la lista mostrada y capturando el evento.

Que realiza la llamada al método de llenar campos, con el cual partiendo del Id del objeto seleccionado obtiene el dato almacenado en la fila seleccionado y rellena con los datos obtenidos de la base de datos cada campo del formulario.

Para el botón de borrado llamamos al método delete realizado en la clase Cliente para borrar el registro enviando el id del elemento.

Cada vez que se borra, actualiza o se inserta un cliente, debemos vaciar los datos del formulario, por lo que tenemos el método limpiar campos que es ejecutado cada vez que se realiza alguna de estas acciones.

Modelo

En el modelo de la aplicación intervienen tres elementos, la clase clientes que define la estructura de un cliente, la Clase DaoClientes que contiene los métodos de manipulación en la base de datos y la propia base de datos.

Base de datos:

La base de datos consta de una sola tabla con los valores de los campos de cada atributo de cliente. No se han respetado todas las formas normales de entidad relación para no hacer la practica demasiado grande.

La clase Cliente consta de los atributos y los métodos de inserción, actualización, borrado y listado de elementos para realizar el CRUD de los datos.

Siguiendo el modelo Singleton y para facilitar el cambio de la capa de persistencia, esta capa solo realiza las llamadas a la clase DAO correspondiente que es la que realizara las operaciones con la base de datos.

Podemos observar como cada uno de los métodos realiza una llamada a los métodos de la clase estática DaoClientes.

En esta clase es donde se construye las sentencias SQL para la manipulación de los datos. Podemos observar como en el constructor de la clase utilizamos el patrón singleton para realizar la conexión llamando a la clase DBConnection.

Junto a este documento se incluyen los siguientes recursos.