Este documento resume um mini curso sobre programação de interfaces gráficas com Java e persistência de dados com Hibernate. Ele inclui instruções sobre como configurar um banco de dados JavaDB, mapear classes com anotações JPA, implementar um DAO para realizar operações CRUD e validar que os dados são persistidos corretamente.
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
1. Programação de Interfaces
Gráficas
Aula extra
Mini Curso
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Avançado Uberlândia
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
2. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Objetivos Aula extra
• Refazer a camada DAO para persistir
objetos no banco de dados com
Hibernate/JPA
3. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criação do banco de dados
• Deve-se criar um banco de dados. O
NetBeans oferece suporte nativo ao
JavaDB (antigo apache Derby)
4. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criação do banco de dados
• Deve-se conectar ao banco
5. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Arquivo de Persistência
• Deve-se adicionar a unidade de
persistência
6. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Arquivo de Persistência
• Nesta tela, deve-se selecionar a biblioteca
do Hibernate, o banco de dados, e
selecionar Drop and Create, para criar o
banco automaticamente a partir dos
objetos.
7. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Arquivo de Persistência
• Com isso, deve-se ter criado um novo
arquivo chamado Persistence.xml
8. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adição da Biblioteca do JavaDB
• Deve-se adicionar a biblioteca do JavaDB
9. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe persistente
Fornencedor
• Deve-se editar a classe Fornecedor, para
contemplar as anotações JPA
10. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe persistente
Fornencedor
• O campo cnpj recebe a anotação
@Transient porque não terá uma coluna
no banco de dados
11. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
• Para a classe FornecedorDao, deverá ser
retirado o conjunto (Set) de fornecedores,
e adicionado um atributo EntityManager.
12. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
• Duas observações sobre o código do slide
anterior:
• 1) Estamos invocando o método salvar()
para popular o banco de dados com
alguns fornecedores;
• 2) Ao invés de inicializar os fornecedores
com códigos, estamos inicializando com
null, porque o código é gerado
automaticamente pelo Hibernate.
13. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
• O método getNovoCodigo() deve ser
excluído;
• O novo método salvar() está preparado
para insert e update.
14. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
• O método excluir também deve fazer
merge, pois o fornecedor selecionado deve
ser carregado pelo Hibernate.
15. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
16. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Execução da Aplicação
Ao executar a aplicação, verificando que os
fornecedores são mostrados na tabela.
17. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Execução da Aplicação
Ao clicar em viewData, podemos observar
que os fornecedores estão salvos no banco
de dados
18. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Execução da Aplicação
Um item interessante a se observar é que
NENHUMA ALTERAÇÃO foi realizada
nas camadas view e control, restringindo-se
à camada DAO e a inclusão das anotações
JPA na camada domain.
19. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Para a classe Produto, crie a classe abaixo
dentro da camada DAO e altere o construtor
para FornecedorDao:
20. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o domain de Produto
21. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto
22. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto
23. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto