Saltar al contenido principal

H2

H2 es un motor de base de datos ligero y en memoria escrito en Java. Está diseñado para ser rápido, simple de usar y requiere una configuración mínima, lo que lo hace perfecto para entornos de desarrollo y testing.

¿Por qué usar H2 en desarrollo?

Configurar una base de datos de producción real para propósitos de desarrollo puede ser:

  • Una pérdida de tiempo.
  • Intensivo en recursos.
  • Dependiente de infraestructura externa.
  • Desafiante al trabajar en diferentes entornos.

H2 resuelve estos problemas al proporcionar una base de datos que:

  • Requiere cero instalación.
  • Arranca instantáneamente con tu aplicación.
  • Se ejecuta completamente en memoria (aunque se puede configurar para persistencia en archivos).
  • Soporta sintaxis SQL estándar.

Características clave

Operación en memoria

Por defecto, H2 opera completamente en memoria, lo que significa:

  • La inicialización de la base de datos ocurre al inicio de la aplicación.
  • Todos los datos existen solo en RAM.
  • Cuando detenés la aplicación, todos los datos desaparecen.

Este enfoque de "borrón y cuenta nueva" es perfecto para escenarios de desarrollo y testing donde querés empezar de cero cada vez.

Huella ligera

Los requisitos mínimos de recursos de H2 significan:

  • Tiempos de inicio de aplicación más rápidos.
  • No necesidad de servidores de base de datos separados.
  • Capacidad para ejecutar múltiples instancias aisladas simultáneamente.
  • Menos consumo de memoria en comparación con instalaciones de base de datos completas.

Compatibilidad SQL

A pesar de su simplicidad, H2 soporta la mayoría de las funcionalidades que esperarías de una base de datos de producción:

Consola H2

Una de las características más amigables para desarrolladores de H2 es su consola web integrada, que te permite:

  • Ver la estructura de tu base de datos.
  • Ejecutar consultas SQL.
  • Navegar por los datos.
  • Chequear los efectos de las operaciones de base de datos de tu aplicación en tiempo real.

Cuándo usar H2

H2 es excelente para:

  • Entornos de desarrollo.
  • Unit y integration testing.
  • Demostraciones y ejemplos.
  • Aprender conceptos de base de datos sin configuraciones complejas.
  • Prototipar aplicaciones rápidamente.

Sin embargo, no se recomienda para entornos de producción donde se requiere persistencia de datos, escalado y funcionalidades avanzadas de sistemas de base de datos dedicados.

Opciones de persistencia

Si bien H2 es volátil por defecto (los datos desaparecen cuando la aplicación se detiene), podés configurarlo para persistencia:

  • Cambiando a modo basado en archivos.
  • Configurando una inicialización regular del esquema de base de datos.
  • Usando las funcionalidades de inicialización de datos de Spring Boot.

Esta flexibilidad hace que H2 sea útil incluso para escenarios de desarrollo más complejos donde se necesita cierta persistencia de datos entre reinicios.