36
Criando uma aplicação Parte 1

Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

  • Upload
    ngonhi

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando uma aplicação Parte 1

Page 2: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Aplicações web● Advertência:

○ Este não é um curso de programação web● Criaremos uma aplicação completa utilizando:

○ Bancos de dados○ Modelo MVC○ JavaServer Faces (PrimeFaces)

● Mais fácil que Swing…

Page 3: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Um pouco sobre banco de dados● Todas as aplicações precisam armazenar dados de forma permanente● Arquivos

○ Operações de inserir, consultar, excluir e alterar devem ser implementadas pelo programador

● Banco de dados (Sistemas Gerenciadores de Banco de Dados)○ Algoritmos eficientes para as operações○ Programador pode ser preocupar somente com a lógica da aplicação○ São práticos e seguros

Page 4: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Banco de Dados Relacional● Muito tempo atrás, cada programa gerenciava seus dados● Com o surgimento de sistemas gerenciadores de banco de dados, a

persistência passou a ser atividade separada● Os bancos relacionais guardam os dados na forma de tabelas e mantém

relacionamentos entre elas● Com o surgimento da orientação a objetos houve uma lacuna entre a

forma como os dados são armazenados e a forma como o programa os trata

● Criou-se, então, o mapeamento objeto-relacional● Vamos abstrair boa parte disto por enquanto

Page 5: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Banco de Dados Relacional● Exemplo: se quisermos manter as salas do prédio em uma tabela, os

dados ficariam assim:

● Cada linha representa uma sala e cada coluna um dado da sala

Page 6: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando um banco de dados● Utilizaremos o SGBD PostgreSQL e a ferramenta de administração

pgAdmin

Page 7: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando um banco de dados● Dê um nome significativo

Page 8: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando um banco de dados● Utilizaremos o pgAdmin apenas para criar o banco

● O gerenciamento dos dados será feito pela aplicação

Page 9: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação● Utilizaremos:

○ IDE: NetBeans○ Servidor web: Tomcat○ SGBD: PostgreSQL○ Framework: JavaServer Faces○ Componentes: PrimeFaces○ Driver: postgresql○ Biblioteca persistência: EclipseLink

Page 10: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação● Crie um projeto no NetBeans

Page 11: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação

Page 12: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação● Escolha o servidor Tomcat

Page 13: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação● Escolha JavaServer Faces e Primefaces

Page 14: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação● O esqueleto do projeto foi criado● Utilizaremos JPA - Java Persistence API● Para isso, é necessário

○ criar algumas classes e arquivos de configuração○ adicionar algumas bibliotecas

■ javax.persistence■ eclipselink■ postgresql

● Baixe as bibliotecas e adicione no projeto

Page 15: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a aplicação

Page 16: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando o Arquivo persistence.xml● Crie o arquivo persistence.xml ● Deve estar na pasta META-INF dentro da pasta src● Este arquivo vai conter a configuração da conexão com o banco de dados

Page 17: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando o Arquivo persistence.xml

Page 18: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando o Arquivo persistence.xml

Page 19: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando o Arquivo persistence.xml● Use o bom e velho copiar + colar

github.com/merlinuenp/Frota/blob/master/src/java/META-INF/persistence.xml

● Ajuste ○ nome do banco○ senha○ nome da unidade de persistência

Page 20: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando o Arquivo persistence.xml● Edite o arquivo

Page 21: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando uma unidade de persistência● Sistemas que usam JPA precisam de apenas uma instância de

EntityManagerFactory ● A instância pode ser criada na inicialização da aplicação● É responsável por fornecer um EntityManager● EntityManager é responsável por gerenciar entidades no contexto de

persistência● Por meio dos métodos desta interface é possível criar, consultar, excluir e

pesquisar objetos do banco

Page 22: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando uma unidade de persistência● Vamos criar uma classe JpaUtil para ser nossa “fábrica” de

EntityManager

Page 23: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando uma unidade de persistência● É necessário informar o nome da unidade de persistência

definida no arquivo persistence.xml

Page 24: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Começando a programar nossa aplicação● Busque, no domínio da sua aplicação, uma classe que não

tenha dependência de outras classes● Por exemplo: no Frota, a classe Administrador não

depende de nenhuma outra● Administrador tem os atributos id, login, nome, senha● id: atributo com valor único para cada objeto, identifica o

objeto● id: é definido automaticamente pela aplicação

Page 25: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe

Page 26: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● Implemente a interface Serializable e crie um construtor sem argumentos

Page 27: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● Transforme a classe em um classe de entidade

Page 28: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● Crie a “chave” (identificador único dos objetos no banco)● O id do administrador será o identificador (não haverá dois id’s iguais)

Page 29: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● Limite o tamanho dos campos String (máximo de caracteres)

Page 30: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● Implemente os métodos equals( ), hashCode( ) e toString( )● Dica: deixe o NetBeans implementar para você e depois ajuste conforme

necessário

Page 31: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando a primeira classe● “Registre” a classe no arquivo persistence.xml

Page 32: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando um DAO - Data Access Object● DAO é um padrão para persistência de dados que permite

separar os dados (modelo) das regras para acesso ao banco

● Para nossa classe Administrador, criaremos um AdministradorDao para as operações relativas a banco

Page 33: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Criando um DAO - Data Access Object

Page 34: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Hora de testar● Crie uma classe de teste para AdministradorDaoTest

Page 35: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

Hora de testar● Crie um caso de teste para inserir um Administrador

Page 36: Criando uma aplicação - merlin.pro.br · Criando a aplicação O esqueleto do projeto foi criado Utilizaremos JPA - Java Persistence API Para isso, é necessário criar algumas

To be continued...