03SPRINGBOOT+MYSQL_RECURSOSHUMANOS_LDADEV
LDA DEV
0:00 / 0:00
03SPRINGBOOT+MYSQL_RECURSOSHUMANOS_LDADEV
23 просмотра · 7 дней назад
LDA DEV
6 подписчиков
23 просмотра · 7 дней назад
🚀 Java + Spring Boot + MySQL | CRUD con JPA, Hibernate y EntityManager
En este tutorial desarrollamos paso a paso un módulo de empleados para Recursos Humanos utilizando Java, Spring Boot y MySQL, aplicando arquitectura DAO, JPA, EntityManager, JPQL y operaciones CRUD.
⏱️ CAPÍTULOS
00:00 Introducción + Creación de tabla MySQL
02:24 Creación del proyecto con Spring Initializr
04:20 Creación de Entity con JPA
06:54 Creación de la interfaz
10:27 Implementación de la interfaz
16:47 CommandLineRunner
26:24 Configuración de application.properties
27:20 Compilación y revisión final
📋 ENUNCIADO DEL EJERCICIO #3
Recursos Humanos - Empleado
El área de Recursos Humanos de una empresa mediana quiere digitalizar su planilla de personal, ya que actualmente maneja los datos de sus colaboradores en documentos de Word individuales.
Te piden construir el módulo de empleados, incluyendo la capacidad de ubicar rápidamente a todo el personal de un área específica y de dar de baja masivamente a quienes ocupaban un puesto que la empresa acaba de eliminar.
Cuando la empresa otorga un aumento de sueldo a todo el personal de un puesto específico, también necesita poder aplicarlo de forma masiva.
🎯 REQUISITOS
1️⃣ Crear la tabla MySQL "empleado" con las columnas:
• id (INT, PK, AUTO_INCREMENT)
• nombre (VARCHAR(100))
• puesto (VARCHAR(50))
• salario (DOUBLE)
2️⃣ Crear la Entity Empleado mapeada exactamente a esas columnas.
3️⃣ Implementar:
save(Empleado theEmpleado)
Registra un nuevo empleado (Crear).
4️⃣ Implementar:
findById(Integer id)
Busca un empleado por su ID, SIN WHERE (Leer).
5️⃣ Implementar:
findByPuestoLike(String texto)
Busca empleados cuyo puesto contenga el texto indicado, utilizando WHERE y JPQL.
La consulta debe utilizar:
WHERE puesto LIKE :texto
El texto debe envolverse utilizando:
"%" + texto + "%"
Esta operación corresponde a una consulta de lectura (Leer).
6️⃣ Implementar:
update(Empleado theEmpleado)
Actualiza un empleado SIN WHERE utilizando:
entityManager.merge()
Esta operación corresponde a una actualización (Actualizar).
7️⃣ Implementar:
aumentarSalarioPorPuesto(String puesto, double nuevoSalario)
Actualiza en bloque el salario de todos los empleados que tengan un puesto específico.
Utilizar JPQL:
UPDATE Empleado SET salario = :nuevoSalario
WHERE puesto = :puesto
La operación debe utilizar executeUpdate() y retornar el número de filas actualizadas.
8️⃣ Implementar:
deleteByPuesto(String puesto)
Elimina en bloque a todos los empleados que tengan ese puesto exacto.
Utilizar JPQL:
DELETE FROM Empleado
WHERE puesto = :puesto
La operación debe utilizar executeUpdate() y retornar el número de filas eliminadas.
9️⃣ Implementar EmpleadoDAOImpl inyectando el EntityManager mediante Constructor Injection.
🔟 Crear un CommandLineRunner que realice las siguientes operaciones en orden:
1. Guardar 3 empleados:
• Marco Diaz - puesto: Analista Contable
• Rosa Flores - puesto: Analista de Sistemas
• Angie Rodriguez - puesto: Practicante
2. Listar los empleados que tengan "Analista" en el puesto.
3. Recuperar a Marco Diaz y actualizar su salario a 3200.
4. Ejecutar:
aumentarSalarioPorPuesto("Analista de Sistemas", 4000)
Debe afectar únicamente a Rosa Flores.
Imprimir cuántas filas fueron actualizadas.
5. Eliminar a todos los empleados con puesto "Practicante" utilizando:
deleteByPuesto("Practicante")
Imprimir cuántas filas fueron eliminadas.
✅ RESULTADO FINAL ESPERADO
Al finalizar el ejercicio, la tabla debe quedar de la siguiente manera:
• Marco Diaz
Puesto: Analista Contable
Salario: 3200
• Rosa Flores
Puesto: Analista de Sistemas
Salario: 4000
• Angie Rodriguez ya no existe porque fue eliminado mediante la operación masiva por puesto.
📚 APRENDERÁS A TRABAJAR CON
✅ Java
✅ Spring Boot + MySQL
✅ JPA / Hibernate
✅ EntityManager y JPQL
✅ Arquitectura DAO
✅ @Entity
✅ @Repository
✅ @Bean
✅ Inyección de dependencias
✅ Operaciones CRUD
✅ Consultas con WHERE
✅ Consultas con LIKE
✅ Actualizaciones masivas con JPQL
✅ Eliminaciones masivas con JPQL
✅ executeUpdate()
✅ Maven
✅ CommandLineRunner
💻 Proyecto práctico ideal para quienes están aprendiendo Java Spring Boot y desarrollo Backend.
🔔 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 #LDADev