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:
- Clique com o botão direito do mouse em 'Source Packages',
- acesse a opção New > Other,
- na janela que abriu vá na Categoria 'Other' e no Tipo de Arquivo, escolha 'Folder',
- 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.
Gostaria muito se possível que você me enviasse o projeto acima para mim ou mesmo postasse ele no google.code.com através do subversion, qualquer coisa me avise ou envie através do meu email: valdigleis@gmail.com
ResponderExcluirEu estoiu começando no java e achei muito foda seu posto seu projeto me ajudaria muito a começar pois iria olhando as classes necessárias e os arquivos de configuração, desde já obrigado por ler essa mensagem.