Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.

Slides:



Advertisements
Apresentações semelhantes
ARQUITETURA EM CAMADAS
Advertisements

Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Fábio Shiguemi Suzuki Jessica Hofer Lopez Mirella Camilla C. O. Braga
PLATAFORMA J2EE Luís Filipe Almeida Santos
Maurício Edgar Stivanello
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Mapeamento Objeto Relacional
Módulo III Camada de Persistência
Hibernate Apresentação
Ferramentas e Tecnologias II
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Desenvolvimento de Soluções WEB Eduardo Martins Guerra.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
Roteiro Para o Trabalho do Módulo
Mapeamento Objeto-Relacional Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Arquitetura de Sistemas Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
Migrando de JDBC para JPA
Mapeamento de Objetos para Tabelas Relacionais
Aplicativos Web Com Orientação a Objetos
A área de banco de dados Cristina Paludo Santos –
Análise da linguagem Java Planejamento. Objetivos Apresentar as soluções de implementação em Java para os conceitos de Orientação a Objetos introduzidos.
DESENVOLVENDO APLICAÇÕES JAVA PARA WEB UTILIZANDO OS FRAMEWORKS STRUTS 2 E HIBERNATE Alexandre Oliveira.
JPA - Java Persistence API
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
JSP / Servlets Avançado
UNIVERSIDADE CATÓLICA DE BRASÍLIA 2011 PAULO LIMA aluno FERNANDO GOULART orientador.
Introdução ao Hibernate
Hibernate Java avançado – PCC Jobson Ronan
Hibernate Java avançado – PCC Jobson Ronan
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
PESQUISADOR: CASSIANO DALCIN / 2010 Trabalho de Conclusão de Curso MINISTÉRIO DA EDUCAÇÃO Universidade Tecnológica Federal do Paraná Campus Medianeira.
Arquitetura do Sistema Docente/Discente de Graduação Arquiteto: Diénert de Alencar Vieira.
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Framework para mapeamento objeto-relacional
Implementação MVC Pedro Antonino.
Aplicações Web com Orientação a Objetos
Desenvolvimento de Frameworks e Componentes Baseados em Metadados Eduardo Guerra.
Nome(s): Crislaine da Silva Tripoli Luis Antonio Tavares
Conceitos da arquitetura
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Sistema de Gerenciamento de Competências Alexandre Pitta Guedes Julien Renaut Yugo Watari Supervisor: Valdemar W. Setzer.
Eduardo Guerra Aplicações Swing a Jato.
Hibernate Mapeamento Objeto-Relacional Aula Prática I
Persistência e mapeamento objeto relacional
SISTEMA PROCESSUAL DIGITAL
Componentes Avançados JPA - API Prof. Leandro Rubim
Ferramentas de Mapeamento OO para ER Aluno Eduardo Mazza Professora Valeria Times
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
LINQ e Entity Framework
Hibernate Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação (2004/2005) Objetos Distribuídos Prof. Dr. Cláudio.
Nilson de Souza Rego Jr.1 Persistência de Dados em.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Abr-17 Projetar Base de Dados Projetar base de dados.
Camada de Persistência
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Faculdade de Tecnologia SENAI Porto Alegre Aula 1 Prof. Me. Humberto Moura
UCSal – Bacharelado em Informática
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Sistema de Passagens Aéreas
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Aluno: Oscar Chamma Orientador: Armando Hage Curso de Especialização Engenharia de componentes com JAVA ENTERPRISE 1.
PSW1 Prof. Rafael. Persistência Atividade que permite que o estado de um objeto exista mesmo após a extinção do processo computacional que o criou. Em.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Programação Orientada a Objetos Plano da Disciplina Ludimila Monjardim Casagrande 1º Semestre
Application Server & EJB3 Wesley Gonçalves da Silva
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída com Java EE

Objetivo da Aula Apresentar os fundamentos da JPA e mostrar como funciona uma camada de persistência a partir do mapeamento objeto-relacional.

Paradigma Relacional X OO Mapeamento Objeto-Relacional Hibernate JPA Mapeando Objetos API do EntityManager Agenda da Apresentação

Paradigma Relacional X OO As aplicações desenvolvidas possuiam uma grande dificuldade em mapear o modelo entidade-relacionamento do banco de dados para o modelo de objetos da aplicação, e esta parte tomava um grande tempo dos desenvolvedores. Dificuldade em se mapear herança de uma forma eficiente. Dificuldade (e trabalho) de se mapear agregações e composições. Vários problemas relacionados a performance de recuperação de objetos em árvore. Perda em produtividade para a escrita de várias queries. Perda de flexibilidade pela utilização de linguagem SQL específica do BD. Dilema entre deixar regras de negócio no banco de dados e na aplicação.

Mapeamento Objeto-Relacional Apesar de existirem bancos de dados orientados a objetos, os bancos relacionais ainda são o padrão do mercado. O objetivo do mapeamento objeto-relacional é mapear, utilizando metadados, os objetos da aplicação para as tabelas do banco de dados. Mapeamento de herança e relacionamentos como agregação e composição.

Hibernate Primeiro framework open-source a implementar o conceito de mapeamento objeto-relacional a partir de arquivos XML. Suporte a 3 tipos de mapeamento de herança, inclusive com o suporte a queries polimorficas. Suporte a relacionamentos um-para-um, um-para-muitos e muitos-para-muitos, bidirecionais e unidirecionais. Implementação de mecanismos de otimização de performance como a recuperacão lazy e eager de campos e relacionamentos. A criação de drivers para dialetos SQL otimizados realmente criou um grande desacoplamento entre o banco de dados e a aplicação. Criação de uma interface de persistência robusta, flexível e que gera uma maior produtividade.

JPA Os Entity Beans (antigo padrão) eram objetos pesados que não eram flexíveis em termos de querys, herança e relacionamento. O Hibernate passou a ser bastante utilizado por possuir diversas vantagens sobre os Entity Beans, porém sem realmente virar um padrão. Com o suporte a annotations na JDK 5.0, foi criado um padrão junto com o EJB 3.0 para padronizar a estratégia de mapeamento objeto-relacional – JPA. O uso de annotations e convenções faz que o mapeamento desta forma gere uma produtividade ainda maior. Existem várias implementações desta API, sendo as principais o Hibernate e o Toplink.

Mapeando Objetos

EntityManager O EntityManager é a API utilizada para interagir as entidades com o banco de dados. persist() - Escreve um objeto ao banco de dados merge() - Sincroniza o estado de um objeto com o banco remove() - Remove a entidade do banco find() - Encontra uma entidade createQuery() - Cria query usando Query Language createNativeQuery() - Cria query usando SQL Nativo close() - Fecha o EntityManager flush() - Persiste alterações no BD Principais Métodos do EntityManager

Estados de Uma Entidade

Exercício – Usando JPA Criar uma tela de CRUD utilizando JPA e um SessionBean. Criar um Session Bean Usar injeção de dependência para obter o EntityManager Criar as operações de escrita, listagem e etc... Criar servlets e JSPs para exibir os resultados.