Actividades

Actividad 9: CRUD con Hibernate y Swing

Objetivo

El objetivo de esta actividad es desarrollar una aplicación de escritorio utilizando Java Swing para la interfaz gráfica y Hibernate para la gestión de la persistencia de datos. La aplicación permitirá a los usuarios realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre una base de datos de productos.

Requisitos

Antes de comenzar, consulta de la siguiente lista el esquema de base de datos que utilizarás según el equipo al que pertenezcas:

Sistema de Estudiantes con Cursos

TablaCampos
Studentid (PK), firstName, lastName, email
Courseid (PK), name, credits
Teacherid (PK), name
Enrollmentid (PK), student_id (FK), course_id (FK), grade

Objetivo CRUD

  • Gestionar estudiantes, cursos y profesores
  • Inscribir estudiantes a cursos

Implementación

  1. Configura tu proyecto Java con Hibernate y Swing.
  2. Crea las entidades Java correspondientes a las tablas de tu base de datos usando las notaciones de Hibernate y Jakarta Persistence.
  3. Implementa la lógica de negocio para realizar las operaciones CRUD utilizando Hibernate.
  4. Diseña la interfaz gráfica con Swing para permitir a los usuarios interactuar con el sistema y realizar las operaciones CRUD.
  5. Prueba tu aplicación para asegurarte de que todas las funcionalidades CRUD funcionan correctamente.

Consideraciones Finales

  • Asegúrate de manejar las excepciones adecuadamente, especialmente al interactuar con la base de datos.
  • Utiliza patrones de diseño como DAO (Data Access Object) para separar la lógica de acceso a datos de la lógica de negocio.
  • Puedes utilizar una base de datos en memoria como SQLite o H2 para facilitar el desarrollo y las pruebas, o configurar una base de datos MySQL o PostgreSQL si lo prefieres.
  • Recuerda seguir las mejores prácticas de codificación y diseño de software para garantizar que tu aplicación sea mantenible y escalable.
  • Recuerda que para tanto la funcionalidad de Hibernate y Swing no choquen entre sí, es imprescindible el uso de Semáforos sea implementado para evitar problemas de concurrencia y garantizar la integridad de los datos al realizar operaciones CRUD, en conjunto con Timer para actualizar la interfaz gráfica de manera eficiente y evitar bloqueos en la interfaz de usuario.

Entrega

Al finalizar la actividad, entrega el código fuente de tu aplicación, un video de presentación y un único documento PDF que contenga lo siguiente:

  • Portada con el nombre de la actividad, el nombre de los integrantes del equipo y el nombre del curso.
  • Descripción del sistema implementado, incluyendo las entidades y sus relaciones.
  • Código fuente de las clases principales (entidades, DAOs, y la interfaz gráfica).
  • Capturas de pantalla de la aplicación en funcionamiento, mostrando las operaciones CRUD realizadas.
  • Conclusiones sobre el proceso de desarrollo y los desafíos enfrentados.
  • URL del video de presentación (si es necesario subirlo a una plataforma como YouTube o Google Drive).
  • Referencias bibliográficas utilizadas para la implementación.

En este caso es importante destacar que el código fuente se entregará como un archivo comprimido (ZIP) adjunto al documento PDF, y no se incluirá directamente en el documento para mantener la claridad y organización de la entrega.

En cuanto al apartado visual, lo importante es implementar sus propios componentes personalizados con Swing, delegadores, temas, etc. No es necesario utilizar bibliotecas externas para mejorar la apariencia. El enfoque principal debe ser en la funcionalidad y la implementación de las operaciones CRUD utilizando Hibernate y Swing.

Recursos Adicionales

De igual manera, es recomendable consultar el siguiente código de ejemplo para entender cómo implementar las operaciones CRUD utilizando Hibernate y Swing:

Ejemplo CRUD con Hibernate y Swing

Evaluación

La evaluación de esta actividad se basará en los siguientes criterios:

Criterio de EvaluaciónPuntuación
Funcionalidad CRUD40 puntos
Diseño de la Interfaz10 puntos
Uso de Hilos, Semáforos y Timer20 puntos
Calidad y Documentación del Código10 puntos
Presentación y Documentación Final20 puntos
Total100 puntos

Para efectos de la entrega, se realizará una presentación en video (no es necesario que salgan en el mismo, más si el audio de los miembros del equipo) donde cada equipo explicará su implementación, las decisiones tomadas y los resultados obtenidos. Se evaluará la claridad de la explicación, la calidad del código y la capacidad de cada uno de los miembros del equipo para responder preguntas relacionadas con la actividad.

Recuerda que la presentación debe ser clara y concisa, enfocándose en los aspectos más relevantes de la implementación y los resultados obtenidos.

Es importante recalcar que la presentación es una parte fundamental de la evaluación y requisito para la entrega de la actividad, ya que en caso de no presentarse, el equipo no podrá ser evaluado y, por lo tanto, se considerará como no entregada la actividad, independientemente de la calidad del código o la documentación presentada.

Copyright Jesús Aurelio Castro Magaña © 2026