Contenido del curso
Primeros pasos
Spring Data Repositories
- 7

Qué son los Spring Data Repositories
08:39 min - 8

Guardar y Actualizar Registros con Spring Data Repositories
08:34 min - 9

Eliminar elementos con Spring Data JPA: método deleteById
05:36 min - 10

Lazy vs Eager en relaciones JPA
15:09 min - 11

Query Methods en Spring para Consultas Personalizadas
08:27 min - 12

Filtrar pizzas con Containing y Not en JPA
07:27 min - 13

Fechas y listas en query methods de JPA
11:25 min - 14

findTop y Optional en Spring Data JPA
09:30 min - 15

Paginación y Ordenación con Spring Data Repositories
07:39 min - 16

Ordenamiento Dinámico con Paging and Sorting Repository
07:58 min
Personalización de queries
Características avanzadas
Próximos pasos
Conectar Spring Boot a MySQL en 4 líneas
Resumen
Conectar Spring Boot a MySQL es uno de los pasos clave cuando empiezas a construir una API real. Aquí verás cómo configurar la conexión desde application.properties, qué hace cada línea y cómo modelar las tablas de una pizzería con relaciones uno a uno y uno a muchos.
¿Cómo está diseñado el modelo entidad relación de la pizzería?
El proyecto se apoya en cuatro tablas que conviene entender antes de tocar código: pizza, pizza_order, order_item y customer [0:18].
¿Qué guarda la tabla pizza y por qué usa tinyint?
La tabla pizza tiene un id_pizza como identificador único, junto con nombre, descripción y un precio definido como decimal(5,2), es decir, cinco dígitos en total con dos decimales [0:48].
También incluye tres columnas tipo tinyint que funcionan como booleanos:
- vegetarian, para marcar si la pizza es vegetariana.
- vegan, para indicar si es vegana.
- available, para saber si está disponible en el menú.
¿Cómo se relacionan pizza_order, customer y order_item?
La tabla pizza_order guarda el id_order, la fecha, el valor total y un campo method tipo char(1) que define si la orden es a domicilio, para recoger o para comer en el lugar [1:48]. Además tiene additional_notes para anotar peticiones especiales del cliente.
La tabla customer almacena id_customer, nombre, dirección, email y teléfono. Es la clave foránea que conecta cada orden con su cliente.
La tabla order_item es la más interesante porque tiene dos relaciones:
- Relación uno a uno con pizza: cada ítem corresponde a una pizza específica.
- Relación uno a muchos con pizza_order: una orden puede contener muchos ítems.
Su clave primaria es compuesta por id_item e id_order, lo que permite reiniciar el conteo de ítems por cada orden sin que se repitan [3:14]. Guarda también la cantidad y el precio ajustado, útil cuando se pide media pizza o varias unidades.
¿Qué es una clave primaria compuesta? Es una llave formada por dos o más columnas que, juntas, identifican de forma única cada fila. En
order_item, id_item solo es único dentro de cada id_order.
¿Cómo conectar Spring Boot a MySQL desde application.properties?
El archivo application.properties vive dentro de resources y arranca vacío. Bastan cuatro líneas para enlazar tu proyecto con la base de datos [4:21].
¿Qué hace cada propiedad de conexión?
La primera línea define el driver que Spring debe usar:
properties spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
La segunda indica dónde está la base de datos. Aquí entra un truco específico de MySQL: puedes pedirle que cree la base si no existe.
properties spring.datasource.url=jdbc:mysql://localhost:3306/pizzeria?createDatabaseIfNotExist=true
El puerto 3306 es el puerto por defecto de MySQL, y createDatabaseIfNotExist=true solo funciona en este motor [5:32]. Si usas otro motor, debes crear la base manualmente antes de conectarte.
Las dos últimas líneas pasan las credenciales:
properties spring.datasource.username=root spring.datasource.password=admin
Valida en tu instalación cuál es el usuario y la contraseña reales, porque varían según cómo configuraste MySQL.
¿Qué es Hikari Pool y por qué aparece en consola?
Al ejecutar la aplicación verás en la consola mensajes de HikariPool iniciando, agregando conexión y completando el arranque [6:47]. Hikari CP es un connection pool que gestiona automáticamente cuántas conexiones abrir contra la base de datos según la concurrencia de usuarios. No tienes que configurarlo: viene incluido por defecto en Spring Boot.
¿Qué es un connection pool? Es un conjunto de conexiones a la base de datos ya abiertas y reutilizables. Evita el costo de abrir y cerrar conexiones en cada petición, mejorando el rendimiento.
¿Cómo controlar la creación de tablas con JPA y Hibernate?
Spring Data usa Hibernate como implementación de JPA por defecto. Con una sola propiedad puedes decidir cuánto control tiene Hibernate sobre el esquema de tu base de datos [7:30].
¿Qué valor de ddl-auto debo usar?
La propiedad spring.jpa.hibernate.ddl-auto acepta varios valores, cada uno con un comportamiento distinto:
- update: actualiza el esquema cuando detecta cambios en los entities. No borra datos.
- create: crea el esquema desde cero y destruye lo previo. No recomendado en producción.
- create-drop: crea al iniciar y destruye al cerrar la aplicación. Útil para pruebas.
- none: desactiva el manejo automático de DDL. Solo se mueven datos, no estructura.
- validate: valida que el esquema coincida con tus entities y lanza excepción si no, sin modificar nada.
La opción recomendada para desarrollo es update, porque replica en la base de datos los cambios estructurales que hagas en tus entities sin tocar la información existente [8:48].
properties spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
Agregar show-sql=true te permite ver en consola cada sentencia SQL que Hibernate genera a partir de tu código Java [9:30]. Es oro puro para depurar y entender qué está pasando bajo el capó.
¿Para qué sirve
spring.jpa.show-sql? Imprime en consola todas las consultas SQL que ejecuta Hibernate. Te ayuda a verificar que tus operaciones JPA se traducen correctamente a SQL.
¿Vale la pena activar la nueva interfaz de IntelliJ IDEA?
IntelliJ IDEA está migrando hacia una nueva interfaz de usuario que terminará siendo la predeterminada. Para activarla, entra a Appearance & Behavior, selecciona New UI y marca Enable new UI [10:05]. Tras reiniciar el IDE trabajarás con la nueva interfaz, más limpia y moderna.
Con estas pocas líneas en application.properties ya tienes tu proyecto Spring Boot conversando con MySQL y a Hibernate listo para sincronizar el esquema. ¿Te animas a contarme qué motor de base de datos estás usando tú?