Criando um mini-editor de banco de dados.
Fiz esse sistema e embora acho que não vá ser útil para alguém, não custa nada compartilhar.
Ele tem ao todo quatro classes, Painel, Config, PainelExecSql e TabelaExecSql.
Painel é apenas uma interface para abrir a Config e o PainelExecSql.
No config você entra com os dados da conexão, como driver, caminho, usuário e senha.
A classe PainelExecSql só precisa mesmo da TabelaExecSql e da conexão (que nesse caso vem do Painel) ou driver, caminho, usuário e senha no método construtor, então se por acaso quiser deixar isso no seu próprio sistema, bastam essas duas classes.
A classe TabelaExecSql estende da AbstractTableModel e serve para montar a tabela.
Vamos lá, se for usar como esta ai, apenas coloque o driver do H2 DataBase dentro da pasta lib onde estiver o MiniEditorBD.jar, não coloquei o driver porque não caberia aqui .
Um dos problemas é que ao especificar o caminho, você pode esquecer de colocar o nome do banco de dados e não retornara nenhuma erro, ao contraio, o H2 criara o banco de dados (estou até agora tentando remover os que criei acidentalmente). Então vai alguns exemplos:
jdbc:h2:C:/Arquivos de programas/h2/bin/bd > se existir algum arquivo chamado bd.index.db ele abrirá corretamente, se não ele ira criar um novo banco de dados.
Se você colocar assim:
jdbc:h2:C:/Arquivos de programas/h2/bin/bd.index.db > ele não abrira, ele criara um novo banco de dados, com o seguinte nome: bd.index.db.index.db
Acho que é só. Agora se você for colocar na sua própria aplicação, como eu disse, pegue apenas as classes PainelExecSql e TabelaExecSql e daí crie uma instancia passando a conexão ou os dados para criar uma.
PainelExecSql painel = new PainelExecSql(conexao);
ou
PainelExecSql painel = new PainelExecSql(drv,url,user,senha);
Considerações finais.
Eu só testei com H2 se alguém testar com outro banco, me avise se funcionou ou não.
Não esqueça de colocar o driver dentro de alguma pasta chamada lib ou modifique o MAINFEST.
Site do h2: http://www.h2database.com/html/frame.html
Obrigado.
Marcus Becker.