sábado, 13 de fevereiro de 2010

Explorando o Derby! Parte II

Mãos na massa

Na primeira parte vimos como instalar e configurar o Derby. Hoje vou mostrar como usar o Derby de forma embutida, ou, se preferirem, Embedded.

Vamos criar um cadastro simples de pessoas em que o banco de dados ficará embutido junto com a aplicação, e o usuário não precisará instalar nada além da própria aplicação.

Configurando o Ambiente

Para nosso exemplo, vou usar o NetBeans 6.8, que pode ser baixado em http://netbeans.org, e como provedor de persistência, o Hibernate, que já vem na instalação do NetBeans. Entretanto, para quem preferir o Eclipse, fique a vontade, pois não farei nada no Netbeans que não possa ser feito com o Eclipse.

Hora da prática

No Netbeans, vá em File > New Project, e escolha a Categoria 'Java', e o Projeto 'Java Application', clique em 'Next', e dê ao projeto o nome 'PostDerby'. Desmarque a opção de 'Create Main Class' e clique em 'Finish'.

Clique com o botão direito sobre a raiz do projeto e vá em Propriedades. Clique em Libraries, e depois no botão 'Add Library'. Selecione a opção 'Hibernate JPA', caso esta opção não esteja na lista, clique em 'Import', e selecione a outra janela que abrirá. Também adicione o arquivo derby.jar presente na pasta lib na sua instalação do Derby. Feche as propriedades clicando em 'OK'.

Agora, crie o pacote br.blog.javaempo.entidades, e nele a classe Pessoa.java como na figura abaixo:


Após criada a classe, vamos criar a nossa unidade de persistência. Siga os passos abaixo:

  1. Clique com o botão direito do mouse em 'Source Packages',
  2. acesse a opção New > Other,
  3. na janela que abriu vá na Categoria 'Other' e no Tipo de Arquivo, escolha 'Folder',
  4. clique em 'Next', e dê o nome de 'META-INF', e clique em 'Finish'.

Vamos agora criar o arquivo persistence.xml. Para isso, clique na pasta 'META-INF' e siga basicamente os passos anteriores, com a diferença que você deve criar um arquivo da Categoria 'XML', e escolher o tipo 'XML Document', clique em 'Next' e dê o nome de persistence.xml, clique em 'Next' e deixe a opção default selecionada que indica apenas que você vai escrever um documento xml comum.

Abra o arquivo persistence.xml, e preencha como na figura abaixo:



Observem na imagem acima, na linha 12, que no valor da propriedade "hibernate.connection.url", após o prefixo "jdbc:derby:" temos o diretório local onde está o banco de dados, e não o IP do servidor com a porta, como é de costume.
Além disso, logo após o endereço, temos o parametro "create=true", isto indica ao Derby, que ao conectar, ele deve criar o banco no endereço indicado caso não exista. Isso garante transparência à aplicação, ao usar o banco. Para mais informações sobre a passagem de parametros na url, veja a seção "Working with the database connection URL attributes" do Guia do Desenvolvedor Derby presente no diretorio docs/pdf/devguide dentro do diretório da instalação do Derby, conforme vimos na primeira parte deste Post.

Outra propriedade importante é a "hibernate.hbm2ddl.auto" com o valor "update". Desta forma, quando conectar pela primeira vez, o Hibernate criará automaticamente as tabelas, e caso você altere, ou crie alguma entidade, ao levantar a aplicação na próxima vez, estas alterações já serão refletidas no banco.

Vamos criar a interface gráfica. Crie um pacote chamado br.blog.javaempo.gui, e nele crie um JFrame chamado CadPessoa.java.

Bom pessoal, como nosso objetivo aqui, é o Derby, então vamos pedir licença aos Design Pattern's, e criar todo o controle da aplicação neste JFrame, que deve ficar como na figura abaixo.

Na próxima imagem temos alguns atributos para uso geral do cadastro e também o construtor da classe.



Nas linhas 16 e 17 criamos um entityManagerFactory usando a unidade de persistência presente no arquivo persistence.xml. Neste momento, o banco de dados é criado no diretório indicado. Logo abaixo, obtemos uma instância da classe EntityManager para nossas operações de persistência, fazemos uma consulta para obter uma lista de pessoas cadastradas, e caso esta não esteja vazia, setamos a primeira pessoa da lista na tela.

Na imagem abaixo segue alguns métodos utilitários para uso na nossa aplicação. Apenas um get, um set e um método para limpar a tela.


Abaixo segue a implementação dos botões 'Novo', 'Excluir' e 'Salvar'.

Na próxima imagem, segue a implementação dos botões de navegação, controlados pelo atributo 'posicao'.


Agora é só executar a aplicação. Observe que na primeira execução o sistema irá demorar mais a levantar que nas vezes subsequentes, e após isso será criado um diretório com os dados como pode ser observado na imagem abaixo.

Bom, com isso concluímos nossa segunda parte. Espero que tenham gostado. Até o próximo post, abraços.

domingo, 7 de fevereiro de 2010

Explorando o Derby! Parte I

      Derby, um subprojeto de Apache DB Project, é um banco de dados relacional, open source e totalmente implementado em Java e está disponível sob a licença Apache, Versão 2.0.
      O Derby pode ser implementado de várias maneiras diferentes. As opções de implementação incluem:

  • Incorporado a um aplicativo Java de um único usuário. O Derby pode ficar praticamente invisível ao usuário final, porque não requer administração e executa na mesma máquina virtual Java (JVM) que o aplicativo.
  • Incorporado a um aplicativo multiusuário como um servidor Web, um servidor de aplicativos, ou um ambiente de desenvolvimento compartilhado.
  • Incorporado a uma estrutura de servidor. Pode ser utilizado o Network Server com o driver de cliente da rede, ou um servidor de livre escolha.

      O Derby pode ser baixado em http://db.apache.org/derby/derby_downloads.html, que além da instalação trás consigo rica documentação em português além de exemplos envolvendo as formas de implementação descritas acima. A versão usada neste post é a versão 10.5.3.0.

Instalando e Configurando o Derby.

      Após fazer o download, descompacte a instalação em um diretório de sua preferência. O próximo passo é configurar o PATH para o diretório da instalação do Derby.
      No Linux Ubuntu, edite o arquivo /etc/profile (como root) e adicione as seguintes linhas:

# /opt/Derby é o diretório onde está instalado na minha máquina. #Substitua pelo diretório da sua instalação.

DERBY_INSTALL=/opt/Derby

export CLASSPATH=$DERBY_INSTALL/lib/derby.jar:$DERBY_INSTALL/lib/derbytools.jar:.

      No Windows, acesse as propriedades de "Meu Computador" e na aba "Avançado", clique no botão "Variáveis de Ambiente". Na lista de Variáveis do Sistema, clique em "Nova", crie a variável de nome DERBY_INSTALL, e no valor, coloque o diretório onde está instalado o Derby. Por exemplo: C:\Arquivos de Programas\Derby

      Depois procure na lista a variável PATH, e adicione o valor ;%DERBY_INSTALL%\bin;%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar

      Para testar, vamos abrir o IJ que é uma ferramenta distribuida juntamente com o Derby. Abra o shell, ou o prompt do MS-DOS e digite:


      java org.apache.derby.tools.ij

      Aparecerá como na imagem abaixo.



      Para conectar digite:

      connect 'jdbc:derby:/opt/Derby/demo/databases/toursdb';

      Observe que onde está escrito /opt/Derby, você deve substituir pelo diretório da instalação do Derby na sua máquina.
      Segundo o manual de referência, o Derby implementa um subconjunto do núcleo do SQL-92, assim como algumas funcionalidades do SQL-99.
      Então, uma vez conectado, é só usar e abusar da ferramenta.
      Para desconectar, digite: disconnect;
      Para sair do IJ, digite: exit;
      Pronto! O derby está instalado e configurado. Bom pessoal, vou ficando por aqui, na segunda parte, vamos deixar de conversa, e partiremos para a prática com uma aplicação em que pretendo explorar o uso do Derby embutido (Embedded).

      Grande abraço, muito obrigado.

Referências:
1. http://db.apache.org/derby/
2. Manual de Referência presente no diretório "docs/pdf/pt_BR/ref" da instalação do Derby.
3. Guia do Servidor e Administração do Derby presente no diretório "docs/pdf/pt_BR/adminguide" da instalação do Derby.
4. Derby Developer's Guide presente no diretório "docs/pdf/devguide" da instalação do Derby.

terça-feira, 2 de fevereiro de 2010

Boas Vindas!!

Boa noite pessoal,

Sejam bem vindos! Em breve começarei a postar aqui conteúdo Java, e de outras tecnologias relacionadas que são de uso frequente em meu cotidiano profissional. Aguardem!

Abraços,

dantas.