Introducción a HSQL

7
51657

Introducción a HSQL

Yo trabajo en Autentia, una empresa en donde nos gusta compartir conocimiento e intentar aprovechar al máximo las distintas soluciones ya existentes en el mercado para así realizar un software de calidad e intentar no reinventar la rueda.

En este pequeño tutorial, os quiero presentar una herramienta que a mi personalmente me parece de gran utilidad.

En mi experiencia como desarrollador de aplicaciones software, me he encontrado en innumerables ocasiones con la necesidad de tener que hacer la típicas operaciones de altas, bajas, modificaciones y consultas de diferente información, y siempre eché en falta la posibilidad de hacer estas operaciones de la misma manera a como lo hacemos con las bases de datos relacionales de toda la vida, es decir, utilizando consultas SELECT, UPDATE, INSERT, DELETE, CREATE TABLE, etc. El problema era que la información a tratar era una información exclusiva de mi aplicación y no quería meter un gestor de base de datos (MySQL, SQL Server, etc) para poder realizarla.

Un día descubrí HSQL y que aunque seguía proporcionándome mucho más de lo que necesitaba reálmente, era lo más parecido y ligero que he conocido para ayudarme a manejar información a través de sentencias SQL de una forma embebida e independiente de motores de bases de datos en mis aplicaciones.

¿ Que es HSQL ?

HSQL es un motor de bases de datos SQL ligero (611 Kb aprox.), OpenSource e implementado completamente en Java. Ideal para realizar pruebas sin tener que conectarse a un gestor de bases de datos, o para aplicaciones en donde en vez de querer administrarnos nosotros la información en ficheros binarios y hacer nuestros métodos de consulta, borrado, etc.. Deseamos tratar esta información al igual que lo hacemos con bases de datos relacionales en java, es decir usando JDBC.

Antiguamente, HSQL se llamaba HypersonicSQL y se puede descargar desde la dirección http://www.hsqldb.org

Una vez que nos hemos descargado y descomprimido HSQL en nuestro ordenador, veremos que disponemos de varias carpetas. (Documentación, ejemplos, código fuente y librerías)

Antes de nada quería decir que HSQL va mucho más allá de lo que se menciona en este tutorial, recomendamos leer la documentación de HSQL para profundizar más en las características que esta herramienta nos ofrece. Por citar algunas, HSQL permite la creación de índices, control de la integridad referencial, sentencias de definición de datos, etc.

El fichero que nos interesa es hsql.jar que contiene:

  1. El motor de base de datos.
  2. El controlador JDBC para acceder a la base de datos.
  3. Aplicaciones de gestión y administración de bases de datos.

HSQL: El ejemplo

Para presentaros y daros el primer empujoncito en el manejo de HSQL, voy a desarrollar una aplicación de escritorio que realice altas, bajas, modificaciones y consultas de información de empleados. Para no extenderme demasiado, voy a explicar los pasos a realizar y la forma de hacerlo con comentarios dentro del código fuente. Quiero hacer constar que el tratamientos de excepciones no es del todo el correcto, pero esta hecho así a propósito para que el código quede más reducido y así puedan entenderlo más fácilmente.

Puede descargarse el código fuente de la aplicación desde aquí

Ejecutamos la aplicación desde la línea de comandos de la siguiente forma (Sistemas Windows):

java -classpath %CLASSPATH%;.;hsqldb.jar com.autentia.examples.hsql.HSQLExample

y nos dará como resultado por la salida estándar:


100000 Carlos Garcia Desarrollo
100001 Andrea Sanchez Contabilidad
100002 Gema Lopez Contabilidad

Conclusiones

HSQL me parece una herramienta increíblemente útil, te ahorra bastante tiempo de desarrollo y al trabajar sobre bases de datos es flexible a la hora de realizar cambios en la información a tratar o cuando los requisitos de la información a tratar cambien.

Aunque no he realizado pruebas de rendimiento, ni he profundizado mucho en la herramienta, intuyo que HSQL no debe tomarse como una solución sería en un entorno multiusuario en donde los requisitos en tiempos de espera y seguridad son importantes. No hay que olvidar que trabaja sobre ficheros de texto.

7 Comentarios

  1. Una aportación:

    Ventajas que veo: independencia de BD, mayor rapidez de acceso.
    Desventajas: mayor memoria en la aplicación.

    Una buena alternativa es utilizar Hibernate para crear automáticamente una MySQL y hacer uso de ella. No me atrevo a comparar funcionalidades de las dos BD porque me supera.

    Saludos cordiales,
    Jaime.

  2. una pregunta, una vez me descargo ese archivo que debo hacer para poder utilizarlo? poner ese archivo en una carpeta especial linkarlo de algun modo…?

  3. Hola!, necesito asesoria soy nueva en la parte de programacion, en estos momentos estoy desarrollando una aplicacion la cual necesita crear su bd automaticamente en la maquina q se instale, por lo que veo HSQL sirve para esto mis preguntas son: presenta HSQL algun tipo de limitante como el espacio en Access? posee HSQL las mismas ventajas q MySQL? lo pregunto xq staba trabajando con mysql pero me ahora necesitan q el programa cree su bd sin tener q instalar ningun programa, es decir, no quieren instalar mysql en las maquinas donde se desee instalar la aplicacion

Dejar respuesta

Please enter your comment!
Please enter your name here