O HSQLDB ou HyperSQL é um gerenciador de base de dados relacional open source escrito inteiramente em Java. É simples, possui poucos recursos, mas é bastante eficiente. Esse gerenciador é utilizado no OpenOffice, ocupa pouco espaço em disco e pode ser embutido em uma aplicação Java sem a necessidade de instalação. É recomendado para aplicações desktop que não compartilham servidores de banco de dados, para demonstrações, testes unitários ou em situações em que o uso de um banco simples e pequeno se faz necessário.
Para instalar, basta acessar o site: http://sourceforge.net/projects/hsqldb/files/, fazer o download do arquivo e descompactá-lo em uma pasta. Para executar a ferramenta de acesso à base de dados, é só acessar a pasta lib do projeto e executar o seguinte comando:
[cc lang=”bash”]java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing[/cc]
Irá abrir um gerenciador gráfico simples.
Existem três tipos de bancos associados ao HSQLDB:
- mem: dados inteiramente em memória. Terminou a aplicação os dados são perdidos.
- file: armazenados em arquivos
- res: armazenados em recursos dentro de um JAR, por exemplo. São somente leitura.
O nome do driver é org.hsqldb.jdbc.JDBCDriver, o usuário padrão é SA, sem senha e a string de conexão depende do tipo de banco a ser criado. A URL de conexão para bancos em memória e do tipo: jdbc:hsqldb:mem:nomeDoSeuBanco. Para bancos em arquivos você pode utilizar caminho relativo da aplicação: jdbc:hsqldb:file:nomeDoSeuBanco. Desssa forma o diretório com os arquivos ficará localizado a partir do caminho que você executou a aplicação. Para caminhos absolutos pode-se utilizar a seguinte URL, por exemplo: jdbc:hsqldb:file:/home/thiago/bancoTeste, onde /home/thiago/bancoTeste é a localização do seu banco de dados. O mais interessante é que essa URL é independente de sistema operacional, no windows por exemplo, esse banco estaria localizado na pasta C:\home\thiago\bancoTeste\. Para a opção de recursos dentro de JARs, a URL de conexão é: jdbc:hsqldb:res:org.seu.pacote.nomeDoSeuBanco. Nessa opção o banco é de somente leitura.
Existe também a opção de rodar o HSQLDB como um servidor. Para subir o servidor é necessário executar o seguinte comando a partir da pasta lib do HSQLDB:
[cc lang=”bash”]java -cp hsqldb.jar org.hsqldb.server.Server –database.0 file:nomeArquivoDoSeuBanco –dbname.0 nomeDoSeuBanco[/cc]
Nesse caso a string de conexão é: jdbc:hsqldb:hsql://localhost/nomeDoSeuBanco.
Abaixo temos o exemplo de uma conexão JDBC com o HSQLDB:
[cc lang=”java”]
try {
Class.forName(“org.hsqldb.jdbc.JDBCDriver” );
} catch (Exception e) {
System.err.println(“ERRO: falha ao carregar o driver JDBC do HSQLDB!”);
e.printStackTrace();
return;
}
Connection c = DriverManager.getConnection(“jdbc:hsqldb:file:nomeDoSeuBanco”, “SA”, “”);
[/cc]
Para utilizar o HSQL com JPA é só especificar a a URL de conexão e, caso seja Hibernate, utilizar o dialeto: org.hibernate.dialect.HSQLDialect. E lembre-se de adicionar o hsqldb.jar no classpath da sua aplicação.
