Conectar tu aplicación Spring Boot a una base de datos es uno de los pasos fundamentales para construir un proyecto funcional. Existen dos formas principales de hacerlo: mediante el archivo application.properties o mediante una clase de configuración Java. Ambas estrategias logran el mismo resultado, pero conocer las dos te da flexibilidad para elegir la que mejor se adapte a tu proyecto.
¿Cómo agregar la dependencia de base de datos H2 en el proyecto?
El primer paso consiste en ir al archivo pom.xml y agregar la dependencia de la base de datos que vas a utilizar. En este caso se trabaja con H2, una base de datos en memoria [0:26]. Esto significa que H2 se ejecuta únicamente durante el tiempo de ejecución de la aplicación; cuando la aplicación se detiene, todos los datos persistidos se pierden.
Por esta razón, cada vez que inicies la aplicación deberás cargar datos nuevamente para realizar pruebas. Una vez agregada la dependencia, es necesario recargar los cambios de Maven para que se descarguen las librerías y se autoconfiguren los archivos del proyecto [1:03].
¿Cómo configurar el data source con application.properties?
Dentro del archivo application.properties, que provee el inicializador de Spring Boot, se definen las propiedades de conexión [1:15]:
spring.datasource.url: la URL de conexión, en este caso jdbc:h2:mem:testdb.
spring.datasource.driverClassName: el driver correspondiente a la base de datos H2.
spring.datasource.username: el nombre de usuario, por ejemplo sa.
spring.datasource.password: la contraseña, que puede quedar vacía.
spring.jpa.database-platform: el dialecto de base de datos, configurado con la implementación de Hibernate usando H2Dialect [2:10].
El concepto de dialecto indica a Spring qué tipo de SQL debe generar internamente. Al usar Hibernate como implementación de JPA, se le indica que trabaje con la sintaxis específica de H2.
Con estas propiedades definidas, ya es posible crear la capa de repositorio y ejecutar operaciones como insertar, actualizar, eliminar u obtener registros.
¿Cómo configurar el data source con una clase Java?
Aunque Spring Boot autoconfigura la conexión a partir de properties, también puedes hacerlo de forma manual mediante una clase de configuración [2:42]. Para ello se utiliza la clase GeneralConfiguration, donde se crea un nuevo bean que retorna un objeto de tipo DataSource.
Dentro de este método se usa la clase DataSourceBuilder para construir la conexión [3:06]:
java
@Bean
public DataSource dataSource() {
return DataSourceBuilder.create()
.driverClassName("org.h2.Driver")
.url("jdbc:h2:mem:testdb")
.username("sa")
.password("")
.build();
}
Cada método encadenado replica exactamente lo que se definió previamente en el archivo properties:
.driverClassName(): establece el driver de la base de datos.
.url(): define la URL de conexión con el nombre de la base de datos.
.username() y .password(): configuran las credenciales de acceso.
El resultado es un objeto DataSource, que en realidad es una interfaz [4:02]. Cuando Spring Boot inyecte esta dependencia en otros componentes, toda la configuración estará disponible automáticamente gracias al principio de inversión de control. Este patrón permite que sea el framework quien gestione la creación e inyección de objetos, en lugar de hacerlo manualmente.
¿Cuál es la diferencia entre ambas estrategias?
La configuración con properties es más rápida y declarativa: solo defines valores y Spring Boot se encarga del resto. La configuración con clases Java ofrece mayor control, ya que puedes agregar lógica adicional al momento de construir el data source.
¿Qué elementos necesitas para conectar cualquier base de datos?
Independientemente del método que elijas, siempre necesitarás cuatro elementos esenciales:
- El driver de la base de datos.
- La URL de conexión.
- El nombre de usuario.
- La contraseña.
Dominar ambas formas de configuración te prepara para proyectos donde necesites flexibilidad o personalización avanzada. ¿Ya decidiste cuál vas a usar en tu próximo proyecto? Comparte tu experiencia en los comentarios.