Skip to content

rox651/java-cajero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simulación de Cobro en Supermercado

Aplicación de consola escrita en Java 17 que demuestra cómo varias cajeras pueden cobrar compras en paralelo usando hilos. Los productos se consultan desde MySQL mediante JDBC y la lógica se organiza en capas (modelos, repositorios, servicios).

Requisitos

  • Java 17
  • Maven 3.9+
  • MySQL 8.x (o compatible) en localhost:3306

Preparación de la base de datos

  1. Inicia sesión en MySQL y ejecuta el script incluido:
    SOURCE /java-cajero/db/schema.sql;
  2. Si tu usuario/contraseña de MySQL no es root/"", ajusta los valores en src/main/java/com/iudigital/cajero/util/DbConnection.java.

Compilación

cd /java-cajero
mvn clean package

Ejecución

mvn exec:java -Dexec.mainClass="com.iudigital.cajero.Main"

Durante la ejecución verás:

  • Lista de productos disponibles desde MySQL.
  • Tres compras de ejemplo asignadas a tres cajeras (Cashier), cada una corriendo en su propio hilo.
  • Para cada producto: nombre, cantidad, precio total y tiempo de procesamiento simulado (Thread.sleep).
  • Tiempo total por cliente y tiempo total global del proceso.

Estructura principal

  • model/: Product, Purchase, PurchaseItem, Cashier.
  • repository/: interfaz ProductRepository y JdbcProductRepository (JDBC puro).
  • service/: ProductService, CheckoutService y sus implementaciones.
  • Main: arma las compras, ejecuta CheckoutService y cierra el driver de MySQL.

Personalización

  • Puedes modificar createSamplePurchases en Main para cambiar clientes/productos.
  • Ajusta los productos iniciales editando db/schema.sql o actualizando la tabla products.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages