Criando uma aplicação web Parte 1
Aplicações web Criaremos uma aplicação completa utilizando: Bancos de dados Modelo MVC JavaServer Faces (PrimeFaces)
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
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
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
Criando um banco de dados Utilizaremos o SGBD PostgreSQL e a ferramenta de administração pgadmin
Criando um banco de dados Dê um nome significativo
Criando um banco de dados Utilizaremos o pgadmin apenas para criar o banco O gerenciamento dos dados será feito pela aplicação
Criando a aplicação Utilizaremos: IDE: NetBeans Servidor web: Tomcat SGBD: PostgreSQL Framework: JavaServer Faces Componentes: PrimeFaces Driver: postgresql Biblioteca persistência: EclipseLink
Criando a aplicação Crie um projeto no NetBeans
Criando a aplicação Escolha o servidor Tomcat
Criando a aplicação Escolha JavaServer Faces e Primefaces
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
Criando a aplicação
Criando o Arquivo persistence.xml O arquivo persistence.xml deve conter a configuração da conexão com o banco de dados Deve estar na pasta META-INF dentro da pasta src
Criando o Arquivo persistence.xml Edite o arquivo
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
Criando uma unidade de persistência Vamos criar uma classe JpaUtil para ser nossa fábrica de EntityManager
Criando uma unidade de persistência É necessário informar o nome da unidade de persistência definida no aquivo persistence.xml
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 Faltometro, a classe Curso não depende de nenhuma outra A classe Disciplina, depende de Curso, pois uma disciplina pertence a um Curso (Sim, um Curso tem n disciplinas, mas vamos abstrair por enquanto)
Criando a primeira classe
Criando a primeira classe Encapsule os campos e implemente a interface Serializable
Criando a primeira classe Crie um construtor sem argumentos
Criando a primeira classe Transforme a classe em um classe de entidade
Criando a primeira classe Crie a chave (identificador único dos objetos no banco) No caso, o código do curso será o identificador (não haverá dois códigos iguais)
Criando a primeira classe Transforme todos os atributos da classe em colunas
Criando a primeira classe Implemente os métodos equals( ), hascode( ) e tostring( ) Dica: deixe o NetBeans implementar para você e depois ajuste conforme necessário
Criando a primeira classe Registre a classe no arquivo persistence.xml
Criando um DAO - Data Access Object DAO é um padrão para persistência da dados que permite separar os dados (modelo) das regras para acesso ao banco Para nossa classe Curso, criaremos um CursoDao para as operações relativas a banco
Criando um DAO - Data Access Object
Hora de testar Crie uma classe de teste para CursoDao
Hora de testar Crie um método de teste Shift + F6
Outros métodos para operações de banco Consultar Alterar Excluir Listar Veja o código de exemplo no github
Relacionamentos entre Entidades
Relacionamentos entre Entidades As classes, geralmente, possuem relacionamentos entre si Por exemplo, um Curso tem n Disciplinas Precisamos relacionar as classes por meio de anotações específicas
Relacionamentos entre Entidades Relacionamento UM para MUITOS (OneToMany)
Relacionamentos entre Entidades Relacionamento UM para MUITOS (Classe Curso) curso é o campo na classe Disciplina
Relacionamentos entre Entidades Relacionamento MUITOS para UM (Classe Disciplina) curso é o campo na classe Disciplina referencedcolumnname é o campo na tabela Curso