Spring Boot Web 2/10 – Base de datos H2 embebida

62

En el tutorial anterior, revisamos como crear un proyecto de Spring Boot a partir de la página de Spring Initializr. En este tutorial vamos a revisar cómo configurar y acceder a la base de datos embebida H2 que soporta Spring Boot. 🤓

Como lo mencionamos en el artículo inicial, el objetivo de esta serie de tutoriales es explicar cómo crear y configurar una aplicación web con Spring Boot usando Thymeleaf, Webjars y autenticación OAUTH2 con Google. 🍃

Configuración

H2 es una base de datos que cuenta con una versión ligera embebida para aplicaciones Java. Lo que significa que no necesitamos instalar un motor de base de datos en nuestra PC o servidor, ni conectarnos a una base de datos en la nube, ya que la base de datos correrá dentro de nuestro proyecto en Java.

Para configurarla dentro de Spring Boot, únicamente tenemos que agregar la dependencia a nuestro proyecto mediante Maven o Gradle. Misma que ya incluimos al crear nuestro proyecto desde Spring Initializr.

Al incluir esta dependencia, estamos listos para usar nuestra base embebida (no se requiere de ninguna otra configuración).

Definición de esquema

Para definir el esquema de nuestra base de datos embebida en un proyecto de Spring Boot, crearemos un archivo schema.sql en nuestra carpeta de src/main/resources. Para efectos de la aplicación web que estamos creando, definiremos un par de tablas necesarias para mostrar los eventos y las charlas sobre tecnología en Guadalajara.

De esta forma, al iniciar nuestra aplicación, la base de datos tomará la definición de este esquema, nota que no tenemos que especificar nada en la configuración, pues por convención Spring Boot sabe que debe tomar el archivo schema.sql para esto. Recuerda que la base de datos vivirá solo mientras nuestra aplicación esté corriendo.

Poblando la base de datos

Para dar valores iniciales a nuestra base de datos embebida, podemos poner los Inserts en el archivo data.sql bajo la carpeta src/main/resources. Para el caso de nuestra aplicación ingresaremos algunos eventos y charlas.

Nota que como el ID de la tabla EVENT, es auto generado secuencialmente, podemos crear la referencia desde la tabla TALK, de igual forma. Nuevamente, recuerda que tus datos solo vivirán mientras la aplicación esté arriba.

Configuración de Hibernate

Es muy importante que si se va a usar data y schema sql para definir y poblar la base de datos, se especifique a Hibernate que no sobre escriba la definición del esquema. En Spring Boot podemos especificarlo desde el archivo de configuración de nuestra aplicación application.yml o bien application.properties bajo src/main/resources.

Uso de base de datos embebida

Regularmente el uso de la base de datos embebida H2 en Spring Boot, se utiliza para ambientes de desarrollo, locales o para pruebas de concepto, en los que la ágilidad y velocidad o incluso para ejecutar pruebas unitarias y de integración pero definitivamente no es recomendable usar una base de datos así en un ambiente productivo, por favor considera y revisa tu caso de uso y contexto en particular para tomar la desición más adecuada sobre qué motor de base de datos usar.

Continua con el tutorial

Recuerda que esta serie cuenta con más tutoriales, puedes encontrar el siguiente sobre conexión a base de datos SQL con JPA a continuación. 😉

Spring Boot Web 3 – Accediendo a tu base de datos con JPA

Repositorio de Github

Recuerda que puedes encontrar todo el código de esta aplicación en mi repositorio de Github (no olvides darle estrellita 🌟):

https://github.com/chuucks/Spring-Boot-Web-OAUTH2


La configuración de H2 embebida en Spring Boot mostrada en este tutorial tiene fines únicamente fines ilustrativos para la comunidad de Codesolt.

Comments

comments