11SPRINGBOOT+MYSQL BIBLIOTECA LDADEV
LDA DEV
0:00 / 0:00
11SPRINGBOOT+MYSQL BIBLIOTECA LDADEV
97 просмотров · 10 дней назад
LDA DEV
12 подписчиков
97 просмотров · 10 дней назад
🚀 EJERCICIO #11 — BIBLIOTECA DE INSTITUTO — LIBRO
🚀 Java + Spring Boot + MySQL | CRUD con JPA, Hibernate y EntityManager
En este tutorial desarrollamos paso a paso un módulo de libros para la biblioteca de un instituto utilizando Java, Spring Boot y MySQL, aplicando arquitectura DAO, JPA, EntityManager, JPQL y operaciones CRUD.
En este ejercicio trabajaremos con búsquedas por coincidencias parciales, actualizaciones masivas y eliminaciones masivas utilizando JPQL y `executeUpdate()`.
⏱️ CAPÍTULOS
00:00 Introducción + Creación de tabla MySQL
02:20 Creación del proyecto con Spring Initializr
03:48 Creación de Entity con JPA
06:04 Creación de la interfaz
09:24 Implementación de la interfaz
14:06 CommandLineRunner
26:24 Configuración de application.properties
27:00 Compilación y revisión final
📋 ENUNCIADO DEL EJERCICIO #11
Biblioteca de instituto — Libro
La biblioteca de un instituto quiere dejar atrás su antiguo fichero de tarjetas y digitalizar su catálogo de libros.
Se necesita desarrollar el módulo de libros, permitiendo buscar títulos mediante coincidencias parciales y realizar operaciones masivas sobre los registros.
Además, se requiere corregir de forma masiva el nombre de un autor que fue registrado de distintas formas y eliminar de una sola vez todas las obras de un determinado autor.
🎯 REQUISITOS
1️⃣ Crear la tabla MySQL "libro" con las columnas:
• id: INT, PK, AUTO_INCREMENT
• titulo: VARCHAR(150)
• autor: VARCHAR(100)
• isbn: VARCHAR(20)
2️⃣ Crear la Entity Libro mapeada exactamente a las columnas de la tabla.
3️⃣ Implementar un método para registrar un nuevo libro.
4️⃣ Implementar un método para obtener un libro específico según su ID.
5️⃣ Implementar un método para obtener todos los libros cuyo título contenga, en alguna parte, el texto indicado.
Por ejemplo:
findByTituloLike("Java")
Debe retornar todos los libros cuyo título contenga "Java".
6️⃣ Implementar un método para actualizar los datos de un libro.
7️⃣ Implementar un método para actualizar el autor de todos los libros cuyo autor contenga, en alguna parte, el texto indicado.
Por ejemplo:
actualizarAutorPorAutorLike("J. Bloch", "Joshua Bloch")
Debe actualizar masivamente el autor de los libros que coincidan y retornar el número de filas actualizadas.
8️⃣ Implementar un método para eliminar todos los libros de un autor determinado.
Por ejemplo:
deleteByAutor("Cervantes")
Debe eliminar todos los libros cuyo autor sea "Cervantes" y retornar el número de filas eliminadas.
9️⃣ Implementar LibroDAOImpl inyectando el EntityManager mediante Constructor Injection.
🔟 Crear un CommandLineRunner que realice las siguientes operaciones en orden:
Guardar 4 libros:
• ISBN B001 — "Java para principiantes" — Autor: libre
• ISBN B002 — "Effective Java" — Autor: libre
• ISBN B003 — "Don Quijote de la Mancha" — Autor: "Cervantes"
• ISBN B004 — "Concurrencia en la practica" — Autor: "J. Bloch"
Listar los libros que contienen "Java" en el título utilizando:
findByTituloLike()
Recuperar "Java para principiantes" mediante su ID.
Cambiar su autor a:
"John A. Smith"
Y actualizar el registro.
Ejecutar:
actualizarAutorPorAutorLike("J. Bloch", "Joshua Bloch")
Esta operación debe corregir masivamente el nombre del autor.
Imprimir cuántas filas fueron actualizadas.
Ejecutar:
deleteByAutor("Cervantes")
Esta operación debe eliminar el libro de Cervantes.
Imprimir cuántas filas fueron eliminadas.
✅ RESULTADO FINAL ESPERADO
Al finalizar el ejercicio, la tabla debe quedar de la siguiente manera:
• ID 1 — "Java para principiantes"
Autor = "John A. Smith"
ISBN = "B001"
• ID 2 — "Effective Java"
Autor = el que hayas definido inicialmente
ISBN = "B002"
• ID 4 — "Concurrencia en la practica"
Autor = "Joshua Bloch"
ISBN = "B004"
❌ El libro "Don Quijote de la Mancha" ya no existe, porque fue eliminado mediante:
deleteByAutor("Cervantes")
📚 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
✅ Búsquedas con LIKE
✅ Coincidencias parciales
✅ Actualizaciones masivas con JPQL
✅ Eliminaciones masivas con JPQL
✅ executeUpdate()
✅ Maven
✅ CommandLineRunner
✅ Constructor Injection
💻 Proyecto práctico ideal para quienes están aprendiendo Java, Spring Boot, JPA, Hibernate 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 #Biblioteca #Libro #JPQL #EntityManager #LDADev