Configuración base de datos PostgreSQL

Intermedio
SpringBoot
SpringBoot
Actualizado: 13/06/2025

¡Desbloquea el curso de SpringBoot completo!

IA
Ejercicios
Certificado
Entrar

Mira la lección en vídeo

Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.

Desbloquear Plan Plus

Configuración base de datos PostgreSQL

Spring Boot facilita enormemente la configuración de bases de datos mediante su sistema de autoconfiguración. Para trabajar con PostgreSQL, necesitamos establecer la conexión y configurar las propiedades básicas que permitan a nuestra aplicación comunicarse con la base de datos de forma eficiente.

Dependencias necesarias

Para integrar PostgreSQL en nuestro proyecto Spring Boot, necesitamos agregar las dependencias correspondientes en nuestro archivo pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

La primera dependencia incluye Spring Data JPA junto con Hibernate como proveedor JPA por defecto. La segunda proporciona el driver JDBC específico para PostgreSQL, marcado como runtime porque solo se necesita durante la ejecución.

Configuración en application.properties

El archivo application.properties es donde definimos los parámetros de conexión a nuestra base de datos PostgreSQL:

# Configuración de la base de datos
spring.datasource.url=jdbc:postgresql://localhost:5432/mi_aplicacion
spring.datasource.username=usuario_db
spring.datasource.password=contraseña_db
spring.datasource.driver-class-name=org.postgresql.Driver

# Configuración de JPA/Hibernate
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

Parámetros de conexión esenciales

La URL de conexión sigue el formato estándar JDBC para PostgreSQL: jdbc:postgresql://host:puerto/nombre_base_datos. En desarrollo local, típicamente usamos localhost:5432 como host y puerto por defecto.

Las credenciales de acceso (username y password) deben corresponder a un usuario PostgreSQL con permisos suficientes para crear, leer, actualizar y eliminar datos en la base de datos especificada.

Configuración de Hibernate

El parámetro spring.jpa.hibernate.ddl-auto controla cómo Hibernate gestiona el esquema de la base de datos:

  • create: Elimina y recrea las tablas en cada inicio
  • create-drop: Crea las tablas al inicio y las elimina al cerrar la aplicación
  • update: Actualiza el esquema existente sin eliminar datos
  • validate: Valida que el esquema coincida con las entidades
  • none: No realiza ninguna acción automática

Para desarrollo, update es la opción más práctica ya que preserva los datos existentes mientras aplica cambios estructurales necesarios.

Configuración de logging SQL

Las propiedades show-sql y format_sql son especialmente útiles durante el desarrollo y depuración:

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true

Estas configuraciones permiten visualizar las consultas SQL generadas por Hibernate en la consola, facilitando la comprensión y optimización de las operaciones de base de datos.

Pool de conexiones

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Spring Boot configura automáticamente un pool de conexiones usando HikariCP por defecto. Podemos ajustar sus parámetros según nuestras necesidades:

spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.idle-timeout=300000

El pool de conexiones mejora el rendimiento de la aplicación reutilizando conexiones existentes en lugar de crear nuevas para cada operación de base de datos.

Verificación de la configuración

Una vez configurada la conexión, Spring Boot intentará establecer la conexión automáticamente al iniciar la aplicación. Si la configuración es correcta, veremos en los logs mensajes similares a:

HikariPool-1 - Starting...
HikariPool-1 - Start completed.

Si hay problemas de conexión, la aplicación fallará al iniciar con mensajes de error descriptivos que nos ayudarán a identificar y corregir la configuración incorrecta.

Configuración por perfiles

Para diferentes entornos (desarrollo, pruebas, producción), podemos usar perfiles de Spring creando archivos como application-dev.properties:

# application-dev.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/mi_app_dev
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true

# application-prod.properties  
spring.datasource.url=jdbc:postgresql://servidor-prod:5432/mi_app_prod
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.show-sql=false

Esta separación permite mantener configuraciones específicas para cada entorno sin modificar el código fuente de la aplicación.

Aprendizajes de esta lección de SpringBoot

  • Comprender las dependencias necesarias para integrar PostgreSQL con Spring Boot.
  • Configurar los parámetros de conexión en el archivo application.properties.
  • Entender el control del esquema de base de datos mediante Hibernate y su parámetro ddl-auto.
  • Configurar el logging de consultas SQL para facilitar la depuración.
  • Gestionar el pool de conexiones y utilizar perfiles para diferentes entornos de configuración.

Completa este curso de SpringBoot y certifícate

Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración