Saltar al contenido principal

MÓDULO 4 - Bases de Datos en Producción

Objetivos del Módulo​

Este módulo le permitirá:

  • Instalar y configurar PostgreSQL
  • Comprender la diferencia entre Jakarta y Javax Persistence
  • Dominar Hibernate y las estrategias DDL
  • Utilizar Lombok para reducir el código repetitivo
  • Migrar una aplicación de H2 a PostgreSQL
  • Gestionar múltiples bases de datos (MySQL, SQL Server, Oracle)

Contenido del Módulo​

Teoría​

Este módulo está dividido en 4 capítulos teóricos que debe leer antes de pasar al laboratorio:

Capítulo 1: PostgreSQL - Instalación y Configuración​

  • ¿Qué es PostgreSQL?
  • Instalación en Windows/Mac/Linux
  • Herramientas de administración (pgAdmin, DBeaver)
  • Creación de bases de datos y usuarios
  • Configuración de Spring Boot para PostgreSQL
  • Conexión y prueba
  • Seguridad y mejores prácticas

Capítulo 2: Jakarta vs Javax Persistence​

  • Historia: Java EE → Jakarta EE
  • Diferencias entre javax.persistence y jakarta.persistence
  • Migración: ¿cuándo y cómo?
  • Compatibilidad con Spring Boot 2.x vs 3.x
  • Resolución de problemas comunes
  • Elección de la versión adecuada

Capítulo 3: Hibernate y Estrategias DDL​

  • ¿Qué es Hibernate?
  • Rol de Hibernate en Spring Boot
  • Estrategias ddl-auto en detalle:
    • none: Ninguna acción
    • validate: Solo validación
    • update: Actualización incremental
    • create: Recreación en cada inicio
    • create-drop: Creación y eliminación
  • ¿Cuándo usar cada estrategia?
  • Configuración del dialecto Hibernate
  • Logs SQL y depuración
  • Rendimiento y optimización

Capítulo 4: Lombok - Reducir el Código Boilerplate​

  • ¿Qué es Lombok?
  • Instalación y configuración
  • Anotaciones principales:
    • @Data
    • @Getter / @Setter
    • @NoArgsConstructor / @AllArgsConstructor
    • @RequiredArgsConstructor
    • @Builder
    • @ToString
    • @EqualsAndHashCode
  • Ventajas y desventajas
  • Mejores prácticas
  • Compatibilidad con JPA

Laboratorios Prácticos​

TP4.1: Migración PostgreSQL y Producción​

Objetivo: Migrar una aplicación H2 a PostgreSQL con Lombok

Contenido:

  • Instalación y configuración de PostgreSQL
  • Migración de H2 a PostgreSQL
  • Uso de Jakarta Persistence
  • Aplicación de Lombok a todas las entidades
  • Configuración de estrategias DDL
  • Pruebas y validación
  • Migración a otras bases de datos (MySQL, SQL Server, Oracle)

Duración estimada: 4-6 horas

Prerrequisitos:

  • Módulo 2 completado (TP2.1 y TP2.2)
  • Módulo 3 completado (TP3.1 - Arquitectura CRUD)
  • Todos los capítulos del Módulo 4 leídos

Nivel: Intermedio a Avanzado


Prerrequisitos​

Conocimientos Requeridos​

Antes de comenzar este módulo, debe dominar:

✅ Módulo 2 (completo):

  • Spring Initializr
  • Estructura de proyecto
  • Configuración
  • Anotaciones básicas
  • Repositorios y JPA básico
  • H2 en memoria y persistente

✅ Módulo 3 (completo):

  • Arquitectura de 3 capas
  • Validación de datos
  • Gestión de errores HTTP
  • CRUD completo

Si no se siente cómodo con estos conceptos, regrese a los módulos anteriores.

Software Requerido​

  1. PostgreSQL 14+

  2. pgAdmin o DBeaver

  3. JDK 17+, Maven 3.9+, VS Code

    • Ya instalados desde el Módulo 2

Duración Estimada​

Teoría: 8-10 horas (4 capítulos)
Práctica: 4-6 horas (1 laboratorio completo con migración)
Total: 12-16 horas (2-3 sesiones de 4-6 horas)


Recursos Adicionales​

Documentación Oficial​

Tutoriales Recomendados​


Criterios de Éxito​

Al final de este módulo, usted debería ser capaz de:

  • ✅ Instalar y configurar PostgreSQL
  • ✅ Crear y gestionar bases de datos PostgreSQL
  • ✅ Comprender las diferencias entre Jakarta y Javax Persistence
  • ✅ Elegir y configurar la estrategia DDL de Hibernate adecuada
  • ✅ Utilizar Lombok para reducir el código repetitivo
  • ✅ Migrar una aplicación de H2 a PostgreSQL
  • ✅ Configurar una aplicación para varios tipos de bases de datos
  • ✅ Depurar problemas de conexión y configuración

Próximos Pasos​

Una vez completado este módulo, estará listo para:

  • Módulo 5: Spring Core - IoC y DI avanzado
  • Módulo 6: Spring Data JPA Avanzado (Uniones, JPQL, Optimización)
  • Módulo 7: Seguridad con Spring Security

Por Qué Este Módulo Es Importante​

Desarrollo vs Producción​

AspectoH2 (Desarrollo)PostgreSQL (Producción)
TipoEn memoria o archivo localServidor dedicado
RendimientoLimitadoAlto rendimiento
Usuarios concurrentesNo adecuadoExcelente
HerramientasConsola básicapgAdmin, DBeaver
EscalabilidadBajaExcelente
UsoDesarrollo/PruebasProducción

Antes del Módulo 4​

❌ Solo desarrollo (H2)
❌ Código verboso (muchos getters/setters)
❌ Configuración manual compleja
❌ No listo para producción

Después del Módulo 4​

✅ Listo para producción (PostgreSQL)
✅ Código conciso (Lombok)
✅ Configuración profesional
✅ Listo para despliegue
✅ Competencias demandadas en la industria

Nota Pedagógica​

¿Por qué este módulo viene DESPUÉS del Módulo 3?

  1. El Módulo 3 le enseñó la arquitectura robusta (Capa de Servicio, Validación, Gestión de errores)
  2. Esta arquitectura funciona con cualquier base de datos
  3. Ahora que domina la arquitectura, puede enfocarse en la base de datos
  4. PostgreSQL es más exigente que H2: se necesita una buena base antes de usarlo

Progresión lógica:

Módulo 2: Bases (H2 simple)
↓
Módulo 3: Arquitectura robusta (siempre H2)
↓
Módulo 4: Producción (PostgreSQL) ← USTED ESTÁ AQUÍ
↓
Módulo 6: Optimización (Consultas avanzadas)

Capítulo 1 - PostgreSQL (teoría detallada)