A partir do Java 6, a Sun passou a distribuir o Apache Derby junto com o Java, sob a alcunha de JavaDB. Trata-se de uma alternativa interessante para uso em ambientes de desenvolvimento e teste. Além disso, ele possui um excelente plugin que permite sua integração com o Eclipse.
Além de mostrar como usar o Derby aliado ao Eclipse, este artigo serve como introdução para uma série de artigos sobre JPA que pretendo postar nas próximas semanas.
1) Configuração do JavaDB
O Java6 instala o JavaDB no diretório c:\Program Files\Sun\JavaDB. Recomendo copiar o diretório JavaDB direto para a raiz (c:\JavaDB). É necessário setar a variável DERBY_HOME=c:\JavaDB no classpath do sistema operacional.
2) Instalação dos plugins do Derby no Eclipse
Após baixar os plugins Derby Core e Derby UI em http://db.apache.org/derby/derby_downloads.html, descompactá-los e copiar os conteúdos das pastas "plugin" para a pasta "eclipse/plugin".
Os plugins do Derby são baixados nos links indicados acima - atenção, pois estão meio "escondidos" no meio da documentação.
3) Usando o Derby Integrado ao Eclipse
3.1) Iniciar o Eclipse e Criar projeto "Locadora"
3.2) Clicar com o botão direito no nome do projeto. Se o plugin do Derby foi corretamente instalado, aparecerá a opção "Apache Derby | Add Apache Derby Nature".
Ao habilitar esta opção, as bibliotecas do Derby são importadas para o Build Path do projeto, e novas opções são habilitadas para que possamos usar este plugin:
3.3) Execute o comando sysinfo (último item listado pelo plugin) para verificar se a instalação do Derby está OK (passos 1.1 e 1.2).
3.4) Execute os comandos Start Network Server e Stop Network Server toda vez que precisar iniciar / parar o servidor derby.
3.5) Use o IJ para realizar comandos SQL direto no Console do Eclipse:
4) A Perspectiva Database Development (Eclipse Data Tools Platform)
Mesmo sendo uma mão na roda ter o IJ integrado no Eclipse, a DTP se mostra uma alternativa mais interessante para realização de consultas.
4.1) Window | Open Perspective | Other | Database Development
4.2) Criar Novo Perfil de Conexão
4.3) Escolher Generic JDBC Connection - Derby Embedded não servirá para o nosso caso!
4.4) Nomear o perfil
4.5) Como esta é a primeira vez que configuramos o DTP, a lista drop-down de drivers encontra-se vazia. É necessário configurar novo driver (também pode ser feito em Window | Preferences | Connectivity | Driver Definitions).
4.6) Localizar o driver apropriado (no nosso caso, Derby 10.2) e adicionar nova definição.
4.7) Selecionar Derby Client Driver
4.8) Informar a localização do derbyclient.jar (c:\JavaDB\lib).
4.9) Alterar as propriedades de conexão. Muita atenção para o parâmetro User ID, setá-lo para APP. Leia este artigo no OnJava para entender o porquê.
4.10) Selecione o driver que acabamos de configurar.
4.11) Teste a conexão.
4.12) Conectar-se.
4.13) Expandir LOCADORA | Schemas | APP | Tables | Person | Columns, para visualizar a tabela que criamos anteriormente.
4.14) Vá em File | New | SQL File, e crie um arquivo query.sql na raiz do projeto.
4.15) Selecione o banco de dados e escreva uma query. Note que este editor possui recurso de auto-completar, que pode ser útil durante a construção de queries.
4.16) Com o botão direito, selecione Execute ALL. Os resultados são exibidos logo abaixo, podendo ser visualizados de forma tabular (bem melhor que o texto plano gerado pelo IJ).
4.17) Outra funcionalidade importante que o DTP oferece é a possibilidade de exportar os dados para txt, html, xml e csv, facilitando o transporte de dados para outros programas - por exemplo para uma boa e velha planilha eletrônica, a qual a maioria dos usuários de sistemas de software gostam de ler seus relatórios...
5) Conclusões
Espero ter conseguido demonstrar com clareza o poder do Derby - um BD relativamente fácil de configurar, já que acompanha a distribuição do Java 6, não requerendo a instalação de ferramentas adicionais.
Mostrei também como usá-lo junto com o Eclipse usando seus plugins próprios; em seguida o configuramos com o DTP, possibilitando centralizar no Eclipse as atividades de administração de Banco de Dados, minimizando a necessidade de ferramentas adicionais.
Até a próxima.