Conexão Java x HSQLDB

Olá pessoal,

Precisei nestes últimos dias realizar uma conexão entre uma aplicação java e um banco criado em HSQLDB. Queria deixar aqui três dicas que me fizeram perder um bom tempo de trabalho…

1. O erro: “User lacks privilege or object not found:” (nome da tabela)

Pesquisei bastante em muitos fóruns e concluí que “cada caso era um caso”. Para algumas pessoas era o simples erro de escrita na tabela, para outras era por que a conexão estava aberta no HSQLDB Manager (utilize o comando SHUTDOWN para encerrar a conexão sem fechar o Manager). No meu caso era o apontamento para o banco de dados.

Eu estava usando:

String username = "SA";
String password = "";
String url="jdbc:hsqldb:file:bdusuarios";

connection = DriverManager.getConnection(url,username,password);

Ou seja, não estava informando o caminho completo para o banco. Somente alterei o caminho e funcionou:

String username = "SA";
String password = "";
String url="jdbc:hsqldb:file:Z://app//bd//bdusuarios";

connection = DriverManager.getConnection(url,username,password);

2. Autoincrement nos campos ID

Para definir que um campo é autoincrement, o comando é:
CREATE TABLE USUARIOS (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, NOME_COMPLETO VARCHAR(100))

Para este caso, o campo ID será autoincrement.

3. Comando SHOW TABLES

Para listar todas as tabelas de um banco:

SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES where TABLE_TYPE='TABLE'

É isso pessoal! Espero que seja útil para vocês.

Até mais! =)