programação orientada a objetos - pós graduação - aula 2
Post on 20-Jul-2015
219 Views
Preview:
TRANSCRIPT
Programação Orientada a Objetos
Construindo um Sistema MVC com
POO
Pós Graduação em Análise e Desenvolvimento de Sistemas
Aplicados à Gestão Empresarial
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Uberlândia Centro
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Introdução
• Objetivo de nivelar os alunos, para todos entenderem como os objetos se colaboram para criar um Software Comercial;
• Criar Softwares usando o paradigma RAD (datasets, events) é consideravelmente diferente de projetar soluções com o padrão MVC.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
MVC
• Padrão arquitetural MVC (Model View Control);
• Divisão das aplicações em três camadas lógicas.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criar Aplicação Java
• Com o NetBeans, siga os passos até finalizar:
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criar Pacotes
• Crie todos os pacotes mencionados na figura
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Definições
• DAO – Data Access Object – padrão que isola todo o acesso a dados em uma única camada, fornecendo interfaces e objetos como meios de transição;
• DOMAIN – classes de domínio que representam entidades a serem persistidas em disco (provavelmente banco de dados).
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Teste
• Ao apertar F6, o NetBeans irá perguntar qual é a classe principal, e uma tela se abrirá;
• Em poucos minutos, é possível fazer um protótipo completo para o Cliente testar.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando o Banco de Dados
• Com a camada view pronta, será criado o banco de dados.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando a Unidade de Persistência
• Foram adicionados no projeto o arquivo persistence.xml e as bibliotecas do Hibernate/Jpa, para efetuar o Mapeamento Objeto Relacional de forma transparente
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando a classe de domínio
• Entity – Classe que representa uma entidade no Banco de Dados;
• Table – nome da tabela no banco;
• Id – Campo que é chave primária;
• GeneratedValue – mostrar que é um campo auto incremento
• Column – nome da coluna no banco de dados
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando a classe de domínio
• A classe de domínio faz referência com uma tabela do banco de dados;
• Obviamente esta também pode ter lógica de negócio embutida;
• Tabelas podem ser geradas automaticamente pelo Hibernate.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando uma classe de Conexão
• Esta classe cria uma fábrica de sessões com o Hibernate, e a cada chamada do método, retornará uma sessão.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando uma classe de ClienteDaoImpl
• Observa-se na classe ClienteDaoImpl que o Hibernate abstrai todos os scripts sql com o banco de dados;
• No método salvarAtualizar(), se o código do cliente for null, será feito um insert, caso contrário será feito um update;
• No método pesquisar(), é realizada uma consulta via HQL, que o Hibernate traduzirá os objetos para tabelas.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adicionando bibliotecas do JavaDB e Beans Binding
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando a classe ClienteControl
• O control possui os objetos clienteDigitado, clienteSelecionado e clientesTabela que mapeiam campos da tela;
• O framework Beans Binding faz com que o preenchimento dos campos com a tela seja automático;
• O control também executa efetivamente os eventos que serão disparados na classe ClienteView.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Executar a aplicação
• Ao executar a aplicação observa-se o erro abaixo:
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Executar a aplicação
• Infelizmente, a versão 8.02 no NetBeans não adicionou uma dependência do Hibernate
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Executar a aplicação
• Copie o arquivo jandex-1.1.0.final.jar para a pasta lib do projeto
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Implementar validação dos campos
• Crie uma classe chamada ValidacaoException no pacote util
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Implementar validação dos campos
• Na classe Cliente, crie o método validar() e na classe ClienteControl, altere o método salvar()
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Implementar validação dos campos
• Na classe Cliente, crie o método validar() e na classe ClienteControl, altere o método salvar()
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Implementar validação dos campos
• Em clienteView(), capture a exceção para mostrar o erro de validação na tela.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Retirar a criação de tabelas
• No arquivo persistence.xml, desmarque a opção de criação de tabelas, para que o sistema não destrua e construa as tabelas novamente.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Conclusões
• Várias melhorias poderiam ser implementadas para a aplicação desktop, como: internacionalização, controle dos botões e campos, layout personalizado, menus, etc... Contudo o foco desta aula é apenas entender como os objetos se cooperam como peças de lego, para chegar em um sistema completo.
top related