Skip to content

MaraMirandav/Ejercicio-Cajero-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Ejercicio Cajero Java

Descripción

Este repositorio recopila los ejercicios de la asignatura Programación realizados en el tercer trimestre del Primer curso del Grado Superior en Desarrollo de Aplicaciones Multiplataforma (DAM).

La práctica se centra en el desarrollo de una aplicación de consola que simula las operaciones de un cajero automático. El objetivo principal es aplicar los conocimientos de Java y la persistencia de datos utilizando JDBC para conectar con una base de datos MySQL. Se implementa el patrón de diseño DAO (Data Access Object) para separar la lógica de negocio del acceso a los datos, promoviendo un código más limpio y mantenible.

Objetivo

El objetivo de este proyecto es crear un sistema de cajero automático funcional que permita al usuario realizar las siguientes operaciones:

  • Crear y conectarse a diferentes "bancos" (esquemas de base de datos en MySQL).
  • Listar el dinero total y el desglose de billetes/monedas en la cuenta.
  • Realizar compras, calculando el vuelto si es necesario.
  • Ingresar dinero en la cuenta.
  • Transferir fondos entre diferentes bancos.

Todo esto se gestiona a través de una interacción por consola, demostrando el manejo de transacciones y operaciones CRUD (Crear, Leer, Actualizar, Borrar) en la base de datos.

Estructura del Repositorio

El proyecto está organizado siguiendo una estructura estándar de Maven:

  • pom.xml: Archivo de configuración de Maven que define las dependencias del proyecto, como el conector de MySQL, y la versión de Java a utilizar.
  • src/main/java: Contiene todo el código fuente de la aplicación, organizado en los siguientes paquetes:
    • main: Contiene la clase Main, que es el punto de entrada de la aplicación y gestiona el menú de usuario.
    • model: Incluye las clases del modelo, como CuentaBancaria, que representa las entidades de datos.
    • dao: Implementa el patrón DAO. Contiene la interfaz CuentaBancariaDAO y su implementación CuentaBancariaDAOImplementacion, que encapsula toda la lógica de acceso a la base de datos.
    • util: Clases de utilidad para la gestión de la base de datos. DBUtil se encarga de la conexión y DBcreacionDatabaseTablas gestiona la creación dinámica de esquemas y tablas.
  • src/main/resources: Almacena archivos de configuración, como db.properties, que contiene las credenciales y la URL de conexión a la base de datos.

Requisitos

Para ejecutar y desarrollar este proyecto, se ha utilizado el siguiente entorno:

  • IDE: Eclipse IDE for Enterprise Java and Web Developers.
  • Lenguaje: Java (se recomienda JDK 17 o superior).
  • Gestor de Proyectos: Apache Maven.
  • Base de Datos: MySQL.
  • Driver: JDBC a través de la dependencia mysql-connector-java especificada en el pom.xml.

Configuración

  • Asegúrate de tener una instancia de MySQL en ejecución.
  • Modifica el archivo src/main/resources/db.properties con tus credenciales de MySQL (usuario y contraseña).
  • Importa el proyecto como un "Existing Maven Project" en Eclipse.
  • Ejecuta la clase main.Main para iniciar la aplicación.

Nota

La estructura del ejercicio ha sido establecida por el profesor de la asignatura, dando la libertad de abordarlo según criterio personal. Este repositorio tiene fines educativos y refleja el progreso en el aprendizaje de Programación durante el primer curso de DAM.

Reflexión sobre el Aprendizaje Adquirido

Desarrollar este proyecto ha sido una experiencia de aprendizaje muy valiosa. Me ha permitido aplicar y entender en profundidad conceptos que hasta ahora eran más teóricos.

  • Implementar el patrón DAO fue un gran paso. Me ha permitido separar la lógica de negocio de la capa de acceso a los datos. Esto hace que el código sea mucho más limpio, organizado y fácil de mantener. Ahora entiendo por qué es una práctica tan recomendada.
  • También he profundizado el uso de JDBC para conectar la aplicación a una base de datos MySQL. Aprendí a realizar operaciones CRUD de forma segura usando PreparedStatement para evitar inyecciones SQL, y a manejar transacciones complejas con commit y rollback. Esto fue muy importante para asegurar que operaciones como las transferencias de dinero se efectuaran correctamente y en caso de error revertir el proceso, reflejándose en la base de datos.
  • Usar Maven para gestionar el proyecto me ha facilitado mucho el trabajo, sobre todo para manejar las dependencias y configurar el entorno de compilación. Finalmente, este ejercicio me ha ayudado a pensar de forma más orientada a objetos, modelando el problema con clases que encapsulan tanto los datos como su comportamiento.
  • En definitiva, siento que este proyecto ha sido un paso fundamental para entender cómo se construye una aplicación real, conectando todas sus capas para crear un software robusto y bien estructurado.

About

Proyecto desarrollado durante el primer año del Ciclo Grado Superior en DAM, como ejercicio del módulo de Programación. Simula operaciones bancarias básicas

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages