12SPRINGBOOT+MYSQL RESTAURANT LDADEV
LDA DEV
0:00 / 0:00
12SPRINGBOOT+MYSQL RESTAURANT LDADEV
10 просмотров · 7 дней назад
LDA DEV
12 подписчиков
10 просмотров · 7 дней назад
🚀 EJERCICIO #12 — RESTAURANTE - RESERVA
🚀 Java + Spring Boot + MySQL | JPA, Hibernate, EntityManager y JPQL
En este ejercicio desarrollamos un módulo de reservas para un restaurante que anteriormente gestionaba sus reservas en una libreta física y tuvo problemas con reservas duplicadas.
Implementaremos el registro, consulta y listado de reservas, además de actualizar masivamente el estado de las reservas de una fecha y eliminar automáticamente las reservas canceladas.
⏱️ CAPÍTULOS
00:00 Introducción + Creación de tabla MySQL
02:49 Creación del proyecto con Spring Initializr
04:44 Creación de Entity Reserva
07:10 Creación de la interfaz DAO
09:30 Implementación de ReservaDAOImpl
14:27 CommandLineRunner
21:04 Configuración de application.properties
21:46 Resultado final
📋 ENUNCIADO DEL EJERCICIO #12
Restaurante - Reserva
Un restaurante gestionaba sus reservas en una libreta física en la recepción, pero después de perder mesas por reservas duplicadas decide finalmente sistematizarlas.
Te piden desarrollar el módulo de reservas, con la capacidad de confirmar de una sola vez todas las reservas de una fecha específica y eliminar automáticamente las reservas que fueron canceladas.
🎯 REQUISITOS
1️⃣ Crear la tabla MySQL "reserva":
• id: INT, PK, AUTO_INCREMENT
• codigo_reserva: VARCHAR(20)
• fecha: VARCHAR(10)
• estado: VARCHAR(20)
2️⃣ Crear la Entity Reserva, mapeada a la tabla "reserva", utilizando:
• codigoReserva → codigo_reserva
3️⃣ Implementar un método para registrar una nueva reserva.
4️⃣ Implementar un método para obtener una reserva según su ID.
5️⃣ Implementar un método para obtener todas las reservas:
findAll()
6️⃣ Implementar un método para actualizar el estado de todas las reservas de una fecha:
updateEstadoPorFecha("2026-09-20", "CONFIRMADA")
Debe retornar cuántas filas fueron actualizadas.
7️⃣ Implementar un método para eliminar todas las reservas con un estado determinado:
deleteByEstado("CANCELADA")
Debe retornar cuántas filas fueron eliminadas.
8️⃣ Implementar ReservaDAOImpl utilizando EntityManager mediante Constructor Injection.
9️⃣ Crear un CommandLineRunner que realice las operaciones en este orden:
• Guardar R-001 → 2026-09-20 → PENDIENTE
• Guardar R-002 → 2026-09-20 → PENDIENTE
• Guardar R-003 → 2026-09-21 → CANCELADA
• Listar todas las reservas con findAll()
• Ejecutar:
updateEstadoPorFecha("2026-09-20", "CONFIRMADA")
• Ejecutar:
deleteByEstado("CANCELADA")
✅ RESULTADO FINAL ESPERADO
Al finalizar, la tabla debe contener:
R-001 | 2026-09-20 | CONFIRMADA
R-002 | 2026-09-20 | CONFIRMADA
La reserva R-003 ya no debe existir porque fue eliminada por tener estado CANCELADA.
📚 APRENDERÁS A TRABAJAR CON
✅ Java
✅ Spring Boot + MySQL
✅ JPA / Hibernate
✅ EntityManager
✅ JPQL
✅ Arquitectura DAO
✅ Entity
✅ DAO Interface
✅ DAO Implementation
✅ Constructor Injection
✅ Operaciones CRUD
✅ WHERE
✅ Actualizaciones masivas
✅ Eliminaciones masivas
✅ executeUpdate()
✅ Maven
✅ CommandLineRunner
💻 Proyecto práctico para aprender Java Spring Boot y desarrollo Backend mediante un caso real de gestión de reservas para un restaurante.
🔔 Suscríbete a LDA DEV para más contenido de Java, Spring Boot, MySQL y programación.
#Java #SpringBoot #MySQL #JPA #Hibernate #CRUD #JavaDeveloper #Programacion #Backend #Restaurante #Reserva #EntityManager #JPQL #LDADev