domingo, 5 de agosto de 2012

Operaciones CRUD en el Sistema con BD

Estructura de Paquetes del Proyecto

Para el desarrollo del sistema he adoptado usar la estructura de paquetes sugerida.
Esta estructura está organizando mediante paquetes con el nombre principal de ags, Algoritmo Genético Simple. A continuación enlisto los paquetes que tengo hasta el momento:
  1. ags.core: Contiene las clases pertenecientes al propio algoritmo genético.
  2. ags.dao: Incluye las clases que proporcionan la interface con la base de datos, como su nombre lo indica, Objetos de Acceso a Datos.
  3. ags.gui: En este paquete se tienen todas las clases que proporcionan la interface gráfica de usuario usando Swing.
  4. ags.service: Aquí se especifican las clases que son las encargadas de brindar servicios a otras capas del sistema, por ejemplo a la gui.
  5. ags.util: Las clases que sirven como utilerías son almacenadas en este paquete.


Implementación de las operaciones CRUD (Create Read Update Delete) en el Sistema

La operación Create está implementada en la creación nuevas Funciones Objetivo, los datos de una función se deben guardar en 2 tablas distintas, FuncionObjetivo y Elemento. Para acceder a este servicio tengo la interface FuncionObjetivoService que en su implementación utiliza a la implementación de la interface FuncionObjetivoDao para acceder a los datos de la Base de Datos de MySQL mediante el JDBC.

Las 4 operaciones mencionadas, están incluidas en la clase FuncionObjetivoService; el método recordFuncionObjetivo() se encarga de insertar una nueva función objetivo al la BD, para ello se realiza con una Transacción que incluye la inserción de los diferentes términos de la función objetivo en la tabla Elemento, para después, con los id’s generados de estas inserciones y los otros datos de la función objetivo guardar en la tabla FuncionObjetivo un nuevo registro.

Para que el usuario aceda a esta operación se tiene la opción de Nueva Función Objetivo dentro de Menú -> Función Objetivo. En la ventana correspondiente se pueden ingresar los datos de los coeficientes de A y B de cada uno de los 4 elementos o términos de la función objetivo, así como la variable de la cual dependen y la función base  asociada.
Del mismo modo se puede generar la vista preliminar de la función que se está configurando, oprimiendo el botón “Vista Preliminar”.


La operación Delete esta implementada en el método deleteFuncionObjetivo() de la clase FuncionObjetivoServiceImpl, y el usuario puede acceder a ella mediante: Menú -> Función Objetivo -> Eliminar Función Objetivo, en esta ventana se en listan las funciones que se encuentran en ese momento en la BD del sistema (aquí se implementa la operación Read), al oprimir el botón “Eliminar”, se eliminará la función objetivo que se encuentre seleccionada en el JComboBox. La ventana se presenta abajo:




La operación  Update también esta implementada como las anteriores, en la interface de FuncionObjetivoService,  y es accesible al usuario mediante el menú:
Menú -> Función Objetivo -> Editar Función Objetivo. Es esa pantalla aparece la lista de funciones que se encuentran en la BD, al seleccionar una y oprimir el botón Actualizar abre otra ventana donde aparecen todos los valores de la función seleccionada para poder modificarlos.
Para aplicar los cambios se debe oprimir el botón Actualizar sí todo va bien, se mostrara el aviso correspondiente. Dicho proceso se muestra en imágenes como sigue:





No hay comentarios:

Publicar un comentario