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).
- Java 17
- Maven 3.9+
- MySQL 8.x (o compatible) en
localhost:3306
- Inicia sesión en MySQL y ejecuta el script incluido:
SOURCE /java-cajero/db/schema.sql;
- Si tu usuario/contraseña de MySQL no es
root/"", ajusta los valores ensrc/main/java/com/iudigital/cajero/util/DbConnection.java.
cd /java-cajero
mvn clean packagemvn 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.
model/:Product,Purchase,PurchaseItem,Cashier.repository/: interfazProductRepositoryyJdbcProductRepository(JDBC puro).service/:ProductService,CheckoutServicey sus implementaciones.Main: arma las compras, ejecutaCheckoutServicey cierra el driver de MySQL.
- Puedes modificar
createSamplePurchasesenMainpara cambiar clientes/productos. - Ajusta los productos iniciales editando
db/schema.sqlo actualizando la tablaproducts.