JPA - Java Persistence API com MOR
Duração:
28hs
O curso tem por objetivo prover ao aluno ferramentas de produtividade em Java para o desenvolvimento da camada relacional de aplicações.
Objetivos
- Conhecimento para aplicar o mapeamento objeto relacional no curso de MOR. Existe uma distância muito grande entre os conceitos de orientação a objetos e os conceitos de tabelas. Assim, o curso provê ao aluno a ligação entre os objetos e as tabelas de um banco de dados relacional, o que é chamado de mapeamento objeto relacional.
- Redução do tempo para o desenvolvimento da camada relacional das aplicações. O aluno será capaz de desenvolver aplicações comerciais rapidamente, aprenderá a criar tabelas em banco de dados sem a necessidade de conhecimento em um banco de dados em especial.
- Tornar os sistemas mais adaptáveis na camada relacional ao surgimento de novos requisitos de aplicações. O uso de JPA e do Hibernate permite ao desenvolvedor especificar classes e consultas relacionais adaptaveis à mudanças. Ou seja, é possível acrescentar ou remover classes em uma aplicação e colocar as funcionalidades em operação com um banco de dados em curto tempo.
- Facilitar o reuso de código da camada relacional. Usando a JPA e as consultas JPQL é possível reutilizar módulos inteiros de uma aplicação no desenvolvimento de outra.
- Redução de custos com o desenvolvimento de aplicações comerciais em Java. O uso da JPA permite que a camada relacional de aplicações seja desenvolvido em tempo muito menor do que se fosse desenvolvido utilizando JDBC e SQL.
Pré-requisitos
- Curso T@rgetTrust Introdução a Banco de Dados Relacional
- Curso T@rgetTrust Orientação a Objetos com UML
- Curso T@rgetTrust Java - Fundamentos da Linguagem ou conhecimentos de Java
Público alvo
- Administradores de Dados
- Administradores de Banco de Dados
- Analistas de Sistemas
- Arquitetos de Sistemas e Projetistas
- Desenvolvedores de Aplicações
- Programadores
- Web Developers
Conteúdo
1. Conceitos Básicos de Mapeamento Objeto Relacional
- O Modelo Orientado a Objeto
- O Modelo Relacional
- Impedância Objeto-Relacional
- Encapsulando o Acesso a Dados
- Estratégias para Persistir Dados de Objetos
- Introdução ao Mapeamento Objeto-Relacional
- Os Mapeamentos Fundamentais
- MOR em um Processo de Desenvolvimento de Software Incremental
- Quem faz o Mapeamento?
2. Mapeamento de Classes
- Mapeamento de Classes
- MOR Através de um Exemplo Completo: Modelo de Contatos
- Identidade de Objetos
- Informações Implícitas
- Metadados
3. Mapeando Relacionamentos entre Classes
- Tipos de relacionamentos
- Relacionamentos um-para-um (one-to-one)
- Relacionamentos um-para-muitos (one-to-many)
- Relacionamento muitos-para-muitos (many-to-many)
- Navegabilidade entre os relacionamentos
- Como relacionamentos de objetos são implementados
- Como relacionamentos de banco de dados são implementados
4. Normalização em Classes
- Conceituação
- Primeira Forma Normal de Objeto (1ªFN)
- Segunda Forma Normal de Objeto (2ªFN)
- Terceira Forma Normal de Objeto (3ªFN)
5. Mapeamento de Herança
- Introdução
- Mapeamento de uma tabela por classe
- Mapeamento de uma tabela por classe concreta
- Mapeamento de uma tabela por hierarquia
- Comparação entre as estratégias
6. Otimização de Desempenho (Tuning)
- Abordagens para o Tuning
7. Arquiteturas e Frameworks Java para MOR
- Compreendendo os Termos
- Mapeamento Objeto Relacional em Java
- O Gerenciamento de Persistência de Frameworks Java para MOR
- Compreendendo a Arquitetura
8. Anotações Java Persistence API
- Entidades
- Tabelas
- Mapeamento de Propriedades para Colunas
- Propriedades não Persistentes (Transientes)
- Atributo Identificador (Chave Primária)
- Geração de Chaves Primárias
- Chaves Compostas
- Enumerações
- Campos de Data e Hora
- Inicializações em Buscas
- Definição do Exemplo do Curso
9. Associações
- Inicializações em Associações
- Multiplicidade Um para Um
- Multiplicidade Um para Muitos
- Multiplicidade Muitos para Um
- Multiplicidade Muitos para Muitos
- Mapeando Relacionamentos Baseados em Coleções
- Continuação do Exemplo do Curso
10. Herança
- Introdução
- Uma Tabela por Hierarquia de Classes
- Uma Tabela por Classe Concreta
- Uma Tabela por Subclasse
- Combinação de Estratégias: Classes Bases que Não São Entidades
- Definição do Exemplo do Curso para Herança
11. Operações Básicas de Persistência na JPA
- Operações CRUD
- Inclusão na Base de Dados
- Buscas
- Atualizações na Base de Dados
- Atualização em um Objeto Persistente
- Deleções
- Sincronização de Estados de Objetos e Base de Dados
12. A Linguagem de Comandos da JPA
- Visão Geral
- Elementos e Sintaxe
- Named Queries
- Queries Nativas
- Entidades Usadas nos Exercícios
- Adicionando Consultas JPQL no Exercício