HSQLDB em perguntas e respostas – Do modo Standalone ao Servidor

Filed Under (Banco de dados, Software, Tutoriais) by Antonio Passos on 28-08-2007


P1-O que é HSQLDB ?

É um banco de dados relacional, opensource, “pure Java”, com aproximadamente 600Kb de tamanho!  

P2-Onde obter o HSQLDB?

O endereço do website oficial do HSQLDB é http://hsqldb.org/. De lá pode-se baixar sua última versão estável (na data deste tutorial era a 1.8.0.7).

P3-Como instalar o HSQLDB?

Para instalar o HSQLDB basta descompactar o arquivo “hsqldb_1_8_0_7.zip” baixado do endereço acima e incluir no CLASSPATH o pacote “hsqldb.jar”

Seja, por exemplo, instalar o HSQLDB 1.8.0.7 no Ubuntu. Primeiramente mude-se para o diretório /opt com o comando…

cd /opt

De lá execute o comando…

sudo unzip <<path_do_hsqldb_1_8_0_7.zip>>/hsqldb_1_8_0_7.zip

Em seguida abra o arquivo “bash.bashrc” com o comando…

sudo gedit /etc/bash.bashrc

e inclua ao seu final as linhas abaixo:

CLASSPATH="$CLASSPATH:/opt/hsqldb/lib/hsqldb.jar"
export CLASSPATH

Simples assim! Seu HSQLDB está instalado e configurado. Pronto para usar!

P4-Como criar um banco de dados HSQLDB?

Para demonstrar como se cria um banco de dados HSLQDB, vamos utilizar a ferramenta “DatabaseManagerSwing” distribuída com o pacote hsqldb.jar (esse pacote contém outras ferramentas úteis. Consulte a documentação do HSQLDB para conhecê-las).

Para executar o DatabaseManagerSwing, abra um terminal e digite…

java org.hsqldb.util.DatabaseManagerSwing

Será aberto o diálogo “Connect”.

Nele informe ou selecione em…

  • Setting Name, o nome pelo qual o banco de dados será posteriormente referenciado em “Recent settings”
  • Type, o tipo do banco de dados (comumente, HSQL Database Engine Standalone)
  • Driver, o driver para conexão com o banco de dados (Deixe com está: org.hsqldb.jdbcDriver)
  • URL, o endereço e o nome do banco de dados
  • User, o usuário
  • Password, a senha do usuário

Observação: Deste ponto em diante considere <<user>> o nome do usuário logado no Sistema Operacional.

Por exemplo, seja criar um banco de dados "filmes" no diretório "/home/<<user>>/filmes/". Ainda considerando o seu sistema operacional o Ubuntu, abra um terminal e execute o DatabaseManagerSwing com o comando…

java org.hsqldb.util.DatabaseManagerSwing &

No diálogo "Connect", informe ou selecione em…

Setting Name –> Filmes em exibição
Type –> HSQL Database Engine Standalone
Driver –> org.hsqldb.jdbcDriver
URL –> jdbc:hsqldb:file:/home/<<user>>/filmes/
User –> sa
Password -> (deixe vazio)

Seu diálogo "Connect" deve parecer-se com o abaixo.

 HSQLDB Connect

Clique em "Ok".

Vamos agora submeter alguns comandos SQL. Digite-os na área de comandos SQL (área superior esquerda da figura abaixo) e execute-os com um clique no botão "Execute SQL".

HSQLDB - DatabaseManagerSwing 

Para criar a tabela “filmes”, digite o comando…

CREATE TABLE filmes
(id identity,
titulo varchar(50),
cinema varchar(30),
sala integer,
data date,
hora time)

Para inserir registros na tabela “filmes” criada acima, siga o exemplo abaixo…

INSERT INTO filmes (titulo, cinema, sala, data, hora)
VALUES ('Batismo de Sangue', 'Academia de Tênis', 7,'2007-02-07', '19:10:00')

Para listar os registros inseridos, digite…

SELECT * FROM filmes

Ok? Para finalizar a conexão com o banco de dados, submeta o comando…

SHUTDOWN

Pronto. Encerre o aplicativo DatabaseManagerSwing.

P5-Como configurar um servidor de banco de dados HSQLDB?

A forma descrita acima cria um banco de dados “standalone”, vale dizer, que aceita apenas uma conexão por vez. Para levantar um servidor de banco de dados HSQLDB, que aceite múltiplas conexões simultâneas, deve-se primeiro criar um arquivo “server.properties” e em seguida levantar o servidor com o comando "java org.hsqldb.Server".

O “server.properties” é um arquivo de propriedades dos diversos bancos de dados HSQLDB disponíveis. Para cada um, deve-se informar no arquivo “server.properties” a porta, o caminho, o nome e o alias do banco de dados.

Para o nosso banco de dados “filmes”, criado acima, o arquivo “server.properties” poderia parecer-se com este…

server.port=59999
server.database.0=file:/home/<<user>>/filmes
server.dbname.0=filmes

onde…

  • server.port indica a porta através da qual os clientes poderão se conectar ao banco de dados
  • server.database indica o caminho e o nome do banco de dados
  • server.dbname é o “alias” usado pelos clientes para conectar-se com o banco de dados

Pondo a mão na massa, vamos levantar um servidor de banco de dados HSQLDB. Primeiramente vamos criar o arquivo "server.properties". Em um terminal execute o comando…

gedit /home/<<user>>/filmes/server.properties

Será aberto o editor "gedit". Nele, insira as linhas abaixo:

server.port=59999
server.database.0=file:/home/<<user>>/filmes
server.dbname.0=filmes

Clique no botão “Salvar” e finalize o “gedit”.

Agora mude para o diretório /home/<<user>>/filmes com o comando…

cd /home/<<user>>/filmes

e lá execute…

java org.hsqldb.Server &

Surgirão no terminal as mensagens…

[Server@8813f2]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@8813f2]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@8813f2]: Startup sequence initiated from main() method
[Server@8813f2]: Loaded properties from [/home/<<user>>/filmes/server.properties]
[Server@8813f2]: Initiating startup sequence…
[Server@8813f2]: Server socket opened successfully in 8 ms.
[Server@8813f2]: Database [index=0, id=0, db=file:/home/<<user>>/filmes, alias=filmes] opened sucessfully in 412 ms.
[Server@8813f2]: Startup sequence completed in 431 ms.
[Server@8813f2]: 2007-08-28 11:02:09.192 HSQLDB server 1.8.0 is online
[Server@8813f2]: To close normally, connect and execute SHUTDOWN SQL
[Server@8813f2]: From command line, use [Ctrl]+[C] to abort abruptly

Para testar nosso servidor, abra o DatabaseManagerSwing e no diálogo “Connect” informe ou selecione…

Type = HSQL Database Engine Server
Driver = org.hsqldb.jdbcDriver
URL = jdbc:hsqldb:hsql://localhost:59999/filmes
User = sa
Password =

Clique em “OK”.

Voilà! Eis novamente nosso banco de dados “filmes”!

It's all, folks!

Leia também estes posts...


Comments:

Post a comment