SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
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
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
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)
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criação do banco de dados
• Deve-se conectar ao banco
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Arquivo de Persistência
• Deve-se adicionar a unidade de
persistência
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.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Arquivo de Persistência
• Com isso, deve-se ter criado um novo
arquivo chamado Persistence.xml
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adição da Biblioteca do JavaDB
• Deve-se adicionar a biblioteca do JavaDB
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
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
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.
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.
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.
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.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Edição da classe FornecedorDao
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.
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
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.
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:
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o domain de Produto
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Inclusão da Persistência para o CRUD
de produto
Altere o Dao de Produto
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Referências
• [1] – “Dominando NetBeans”; Edson
Gonçalves; Editora Ciência Moderna,
2006;
• [2] –“Swing + Beans Binding” – revista
Java Magazine, ed. 70;
• [3] – “Criando aplicações com MVC” –
revista Java Magazine, ed. 83;
• [4] – “Java Persistence com Hibernate”;
Gavin King.

Más contenido relacionado

Destacado

Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Carlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2Carlos Eduardo
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Bianca Dantas
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgetsRenzo Petri
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreadingBianca Dantas
 
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalBianca Dantas
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Carlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3Carlos Eduardo
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseRegis Magalhães
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing ListenersDaniel Arndt Alves
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 

Destacado (20)

Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4
 
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
 
Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2
 
Lista Exercicios C2
Lista Exercicios C2Lista Exercicios C2
Lista Exercicios C2
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
 
Java 07 Entrada Dados
Java 07 Entrada DadosJava 07 Entrada Dados
Java 07 Entrada Dados
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
Java Lista Exercicios 06
Java Lista Exercicios 06Java Lista Exercicios 06
Java Lista Exercicios 06
 
Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3
 
JTableView - Swing
JTableView - SwingJTableView - Swing
JTableView - Swing
 
Lista Exercicios C
Lista Exercicios CLista Exercicios C
Lista Exercicios C
 
Merci 10 Completo
Merci 10 CompletoMerci 10 Completo
Merci 10 Completo
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing Listeners
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Java Lista Exercicios 02
Java Lista Exercicios 02Java Lista Exercicios 02
Java Lista Exercicios 02
 

Similar a Mini Curso - Programação de Interfaces Gráficas - aula extra persistência

Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3
Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3 Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3
Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3 Vinicius Elyseu
 
Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016Verdanatech Soluções em TI
 
Apresentação: Padrões de Projetos para Persistência de Dados
Apresentação: Padrões de Projetos para Persistência de DadosApresentação: Padrões de Projetos para Persistência de Dados
Apresentação: Padrões de Projetos para Persistência de DadosLuan Lima
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDr. Spock
 
Gestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresGestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresFabioMDias
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_finaluserrx
 
Plano do projeto de software
Plano do projeto de softwarePlano do projeto de software
Plano do projeto de softwareDanilo Gois
 
plano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhoplano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhouserrx
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Juliano Padilha
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniterAnderson Gonçalves
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dadosRaul Dias
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - Uma das tecnologias mais populare...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  Uma das tecnologias mais populare...PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  Uma das tecnologias mais populare...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - Uma das tecnologias mais populare...HELENO FAVACHO
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteMarcio Palheta
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWMatheus Costa
 

Similar a Mini Curso - Programação de Interfaces Gráficas - aula extra persistência (20)

Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3
Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3 Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3
Pentaho Day 2015 - Universidade Positivo - Preparação de ambiente pentaho 5.3
 
Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016
 
Apresentação: Padrões de Projetos para Persistência de Dados
Apresentação: Padrões de Projetos para Persistência de DadosApresentação: Padrões de Projetos para Persistência de Dados
Apresentação: Padrões de Projetos para Persistência de Dados
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
 
Gestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresGestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em Servidores
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiais
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_final
 
Plano do projeto de software
Plano do projeto de softwarePlano do projeto de software
Plano do projeto de software
 
plano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhoplano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunho
 
Tcos Fisl
Tcos FislTcos Fisl
Tcos Fisl
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dados
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - Uma das tecnologias mais populare...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  Uma das tecnologias mais populare...PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  Uma das tecnologias mais populare...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - Uma das tecnologias mais populare...
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
 

Más de Carlos Eduardo

When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadWhen and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadCarlos Eduardo
 
Experimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de SoftwareExperimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de SoftwareCarlos Eduardo
 
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...Carlos Eduardo
 
Socket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDKSocket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDKCarlos Eduardo
 
Máquinas de turing com memória limitada
Máquinas de turing com memória limitadaMáquinas de turing com memória limitada
Máquinas de turing com memória limitadaCarlos Eduardo
 
Detecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationDetecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationCarlos Eduardo
 
Recommending refactoring operations in large software systems
Recommending refactoring operations in large software systemsRecommending refactoring operations in large software systems
Recommending refactoring operations in large software systemsCarlos Eduardo
 

Más de Carlos Eduardo (8)

When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadWhen and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell Bad
 
Experimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de SoftwareExperimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de Software
 
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
 
Socket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDKSocket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDK
 
Máquinas de turing com memória limitada
Máquinas de turing com memória limitadaMáquinas de turing com memória limitada
Máquinas de turing com memória limitada
 
Detecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationDetecting bad smells in source code using change history information
Detecting bad smells in source code using change history information
 
Recommending refactoring operations in large software systems
Recommending refactoring operations in large software systemsRecommending refactoring operations in large software systems
Recommending refactoring operations in large software systems
 
NoSql
NoSqlNoSql
NoSql
 

Último

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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
  • 24. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br Referências • [1] – “Dominando NetBeans”; Edson Gonçalves; Editora Ciência Moderna, 2006; • [2] –“Swing + Beans Binding” – revista Java Magazine, ed. 70; • [3] – “Criando aplicações com MVC” – revista Java Magazine, ed. 83; • [4] – “Java Persistence com Hibernate”; Gavin King.