Перейти к содержимому

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