15SPRINGBOOT+MYSQL CONTABILIDAD LDADEV
LDA DEV
0:00 / 0:00
15SPRINGBOOT+MYSQL CONTABILIDAD LDADEV
52 просмотра · 5 дн. назад
LDA DEV
12 подписчиков
52 просмотра · 5 дн. назад
🚀 EJERCICIO #15 — CONTABILIDAD DE SERVICIOS - FACTURA
🚀 *Java + Spring Boot + MySQL | CRUD con JPA, Hibernate y EntityManager*
En este tutorial desarrollamos un *módulo de facturas para el área de contabilidad de una empresa de servicios* utilizando Java, Spring Boot y MySQL, aplicando arquitectura DAO, JPA, EntityManager, JPQL y operaciones CRUD.
En este ejercicio trabajaremos con **consultas por estado, actualizaciones masivas por monto y eliminaciones mediante condiciones y coincidencias de texto**.
---
⏱️ CAPÍTULOS
00:00 Introducción + Creación de tabla MySQL
02:30 Creación del proyecto con Spring Initializr
03:38 Creación de Entity Factura
06:04 Creación de la interfaz DAO
09:30 Implementación de FacturaDAOImpl
15:50 CommandLineRunner
25:38 Configuración de application.properties
26:21 Resultado final
---
📋 ENUNCIADO DEL EJERCICIO #15
Contabilidad de servicios - Factura
El área de contabilidad de una empresa de servicios quiere dejar de llevar el control de facturas pendientes de pago en una **hoja de cálculo compartida**, propensa a errores.
Te encargan el módulo de facturas, que debe permitir **identificar todas las facturas aún no pagadas**, y marcar como pagadas, de una sola vez, todas aquellas cuyo monto sea menor a cierto límite.
Al migrar al nuevo sistema, también necesita *depurar las facturas de prueba* generadas durante las pruebas, identificables por un prefijo especial en su número de factura.
🎯 DEBES:
1. Crear la tabla MySQL `factura` con las columnas:
`id`: INT, PK, AUTO_INCREMENT
`numero_factura`: VARCHAR(20)
`monto`: DOUBLE
`pagada`: TINYINT(1)
2. Crear la Entity `Factura`, con el atributo `numeroFactura` mapeado a `numero_factura`, y el atributo `pagada` de tipo `boolean`.
3. Elaborar un método que permita registrar una nueva factura.
4. Elaborar un método que permita obtener una factura específica según su `id`.
5. Elaborar un método que permita obtener todas las facturas según si están pagadas o no.
6. Elaborar un método que permita marcar como pagadas todas las facturas con monto menor a un límite dado, retornando cuántas fueron actualizadas.
7. Elaborar un método que permita eliminar la factura de un monto exacto determinado. Debes definir tú mismo su firma exacta.
8. Elaborar un método que permita eliminar todas las facturas cuyo número de factura empiece con un prefijo dado, retornando cuántas fueron eliminadas.
9. Implementar `FacturaDAOImpl` inyectando el `EntityManager` por Constructor Injection.
10. Escribir un `CommandLineRunner` que realice, en este orden:
*1. Guardar 4 facturas:*
`F-001` — monto `80.0` — sin pagar
`F-002` — monto `150.0` — sin pagar
`F-003` — monto `300.0` — sin pagar
`ANULADA-001` — monto `10.0` — sin pagar
*2.* Listar las facturas no pagadas con:
```java
findByPagada(false)
```
*3.* Ejecutar:
```java
marcarComoPagadasPorMontoMenorA(200.0)
```
e imprimir cuántas filas fueron actualizadas.
*4.* Eliminar la factura de monto `300.0` mediante el nuevo método implementado e imprimir cuántas filas fueron eliminadas.
*5.* Ejecutar:
```java
eliminarPorNumeroFacturaLike("ANULADA")
```
para eliminar las facturas de prueba e imprimir cuántas filas fueron eliminadas.
---
✅ RESULTADO FINAL ESPERADO
Al terminar:
*F-001* — monto `80.0` → `pagada = true`
*F-002* — monto `150.0` → `pagada = true`
*F-003* — monto `300.0` → ya no existe
*ANULADA-001* → ya no existe
Los números de factura son los indicados en el paso 1.
---
📚 APRENDERÁS A TRABAJAR CON
✅ Java
✅ Spring Boot + MySQL
✅ JPA / Hibernate
✅ EntityManager y JPQL
✅ Arquitectura DAO
✅ CRUD
✅ Constructor Injection
✅ Consultas por estado
✅ Actualizaciones masivas
✅ Eliminaciones por condición
✅ `LIKE`
✅ `executeUpdate()`
✅ CommandLineRunner
✅ Maven
💻 *Ejercicio práctico para aprender Java, Spring Boot y desarrollo Backend mediante un caso realista de gestión de facturas.*
🔔 *Suscríbete a LDA DEV* para más contenido de Java, Spring Boot, bases de datos y programación.
#Java #SpringBoot #MySQL #JPA #Hibernate #CRUD #JavaDeveloper #Programacion #Backend #Factura #Contabilidad #EntityManager #JPQL #LDADev