H2 DataBase es una base de datos ultraligera que este hecha en Java . La ventaja de esta base de datos es que puede correr en memoria y es muy ligera permitiéndonos realizar consultas y construir pruebas unitarias que requieran acceso a datos de una forma sencilla y muy rápida algo que otros entornos nos obligan a tener instalada una aplicación o usar Docker o Kubernetes para construir contenedores. Por lo tanto en muchos aspectos esta base de datos nos puede ser muy muy útil. Para poder utilizarla el primer paso que tenemos que realizar es descargarla ( se trata de un sencillo jar) . Nos bajamos la versión multiplataforma y la descomprimimos
Esto nos generará una carpeta con varios ficheros . Simplemente tendremos que entrar en ella y ejecutar el fichero jar pasándole los parámetros que consideremos oportunos
java -jar h2-2.1.214.jar -webAllowOthers -tcpAllowOthers
H2 Database remoto
En este caso estamos optando porque el programa cuando se ejecute admita un acceso vía la consola web y vía una aplicación remota.
Esto es totalmente configurable si solo queremos por ejemplo usarlo a nivel de pruebas unitarias podemos simplemente arrancar el jar desde nuestra aplicación. Una vez que tenemos arrancada la aplicación podemos acceder a ella vía web y ver las tablas que tiene ,crear nuevas y hacer consultas. Todo a través de un interface sencillo al cual accedemos con el usuario SA
Una vez que tenemos la base de datos accesible . Es cuestión de pulsar el botón de conectar y accederemos a las tablas que hayamos creado.
En este caso podemos ver la tabla Persona que yo tengo construida. Es momento de usar JDBC y conectarnos a ella desde un programa Java.
package com.arquitecturajava.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Principal { public static void main(String[] args) { // Open a connection try (Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test", "sa", ""); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from PERSONAS");) { while (rs.next()) { // Display values System.out.print(rs.getString("nombre")); } } catch (SQLException e) { e.printStackTrace(); } } }
Lanzamos el programa desde nuestro entorno de desarrollo y nos mostrará losdatos por la consola.
pepito
Acabamos de acceder a H2 Database y seleccionado un registro de forma rápida.