Boteco Digital

Conectando Java com HSQLDB

Muitas vezes desenvolvemos aplicações simples que necessitam de armazenamento de dados sem nenhum grande desempenho mas que seja feita de forma rápida. Uma boa saída é utilizar um banco de dados(SGDB) bem simples como o HSQLDB

O HSQLDB é um SGDB de código aberto, escrito totalmente e Java o que torna-o portável. Em termos de desempenho, segurança e recursos não podemos compará-lo a outro bancos de dados como Oracle, Postgres e Microsoft SQL, mas para aplicações pequenas em desktop pode ser uma excelente pedida.

Uma das vantagens do HSQLDB é sua simplicidade, a capacidade de poder ser rodado em modo cliente-servidor ou standalone, armazenando os dados em memória, arquivo de texto ou banco de dados.

Veremos agora então como executar, criar um banco de dados e acessá-lo:

Primeiramente baixamos o HSQLDB depois basta descompactá-lo. Depois de descompactado teremos desde o código fonte até alguns scripts, mas que nos interessa é o arquivo hsqldb.jar que é o pacote do HSQLDB que possui desde o driver JDBC até ferramentas para o gerenciamento do banco de dados.

Antes de começarmos a trabalhos com o HSQLDB devemos adicioná-lo ao CLASSPATH:

CLASSPATH = %CLASSPATH%;C:/hsqldb/lib/hsqldb.jar

A interface de gerenciamento em Swing pode ser aberta pelo comando:

java org.hsqldb.util.DatabaseManagerSwing

Ok, agora vamos conectar/criar um banco standalone para ser armazenado na pasta “c:\banco” com o nome do banco “dbteste”

Parâmetros para a conexão title=

Parâmetros para a conexão

Agora vamos criar nossa tabela:

CREATE TABLE  usuarios(
        id IDENTITY PRIMARY KEY,
        nome VARCHAR(50),
        email VARCHAR(50)
);

O HSQLDB aceita os comando básicos de SQL, com algumas pequenas diferenças, por exemplo o tipo de dado inteiro auto-incrementável é IDENTITY e ele começa a contar de 0(atenção). Com a tabela criada vamos inserir alguns dados:

INSERT INTO usuarios(nome,email) VALUES('Boteco Digital','blogbotecodigital@gmail.com');
INSERT INTO usuarios(nome,email) VALUES('Rodrigo','rodrigo@algumacoisa.com');
INSERT INTO usuarios(nome,email) VALUES('Thiago','thiago@algumacoisa.com');
INSERT INTO usuarios(nome,email) VALUES('Joao','joao@algumacoisa.com');

** DETALHE IMPORTANTE **
Antes de fechar o gerenciador lembre-se de executar o seguinte comando:

SHUTDOWN;

Para os dados serem gravados corretamente.

Para conferir se os dados foram inseridos com êxito execute o seguinte comando:

SELECT * from usuarios

Nosso banco está criado e populado agora basta conectá-lo pelo Java:

try{
    Class.forName("org.hsqldb.jdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:hsqldb:file:/banco/dbteste", "sa", "");

    Statement stm= con.createStatement();
    ResultSet rs = stm.executeQuery("SELECT * FROM usuarios");

    while(rs.next()){
        String nome = rs.getString("nome");
        String email = rs.getString("email");

        System.out.println(nome+" - "+email);
    }
    stm.execute("SHUTDOWN");
}catch(ClassNotFoundException e){
    System.out.println("Erro ao carregar o driver JDBC. ");
}catch(SQLException e){
    System.out.println("Erro de SQL: "+e);
    e.printStackTrace();
}

Na linha 2 carregamos o driver JDBC, este driver está no no pacote hsqldb.jar então não esqueça de colocá-lo no seu CLASSPATH.

Na linha criamos uma conexão através da String “jdbc:hsqldb:file:/banco/dbteste”. Esta String contém as seguintes informações de conexão:

  • jdbc tipo de driver a ser utilizado para conexão
  • hsqldb este é o driver que utilizaremos para conectar. Ele já foi carregado na memória através da instrução “Class.forName(“org.hsqldb.jdbcDriver”);”<;li>
  • file informa que o banco está armazenado em arquivo(standalone)
  • /banco/dbteste ando nosso banco está armazendo, no caso na em um pasta na raiz de diretório chamada banco, que terá arquivox com o nome de dbteste.( c:\banco)

Na linha 5 criamos um objeto Statment para realizar um consulto, na linha 6 executamos a consulta e recuperamos seu retorno.

Da linha 8 até 13 iteramos pelo resultado da consulta e exibimos os valores na tela. Na linha 14 executamos o comando SHUTDOW.

Como vimos este exemplo cria uma banco de dados standalone para uma aplicação local. O HSQLDB também pode funcionar no modo servidor para isso temos que executá-lo através do seguinte comando.

java org.hsqldb.Server -database.0 dbteste2 -dbname.0 dbteste2

Detalhe importante: ele irá criar o banco de dados dentro da pasta que foi executado o comando acima!

Para conecta-lo pelo Java utilizamos o seguinte código:

Connection con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/dbteste2", "sa", "");

Bom isso é tudo pessoal!

Categorias Java
comments powered by Disqus