JPA: Persistência padronizada em Java



Documentos relacionados
Mapeamento Lógico/Relacional com JPA

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Persistência de dados com JPA. Hélder Antero Amaral Nunes

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education


Persistência de Dados em Java com JPA e Toplink

JPA Java Persistence API. Prof. Ramon Chiara

Persistência de Classes em Tabelas de Banco de Dados

UFG - Instituto de Informática

Programação com Acesso a Banco de Dados

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316

Manipulação de Banco de Dados com Java 1. Objetivos

Programação Orientada a Objetos JDBC Java Database Connectivity

UFG - Instituto de Informática

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

JAVA JDBC Java Database Connectivity

Tecnologias Java JDBC. Marcio Seiji Oyamada

JDBC. Prof. Márcio Bueno

Integrando Java com Banco de Dados

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro

(UFF) JDBC (I) TEPIS II

Aula 2 - Revisão de JPA (Java Persistence API)

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

JDBC - Java Data Base Connectivity

Acesso a Bancos de Dados em Java (JDBC)

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

JDBC. Java DataBase Connectivity

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

HIBERNATE EM APLICAÇÃO JAVA WEB

Aula 1 Acesso a Banco de Dados

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

Java e Banco de Dados: JDBC, Hibernate e JPA

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

Java Persistence API (JPA)

Programação Orientada a Objetos II

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Criar uma aplicação JPA2 com EclipseLink e H2

Aula 2 - Revisão de JPA (Java Persistence API)

JDBC Acessando Banco de Dados

Desenvolvimento Web TCC Turma A-1

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Programação Orientada a Objetos (DPADF 0063)

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

Introdução à JPA-Java Persistence API

JDBC - Java Data Base Connectivity

JDBC Tópicos avançados de acesso a base de dados relacional

Persistindo dados com TopLink no NetBeans

Resolvendo objeto-relacional impedance mismatch com hibernate

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Figura 1.1 Código de inserção não baseado em Hibernate. Figura 1.2 Código de inserção baseado em Hibernate

Persistência em Software Orientado a Objetos:

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Acesso a banco de dados

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java API JDBC

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

Java e Conexão com Banco de Dados

Leonardo Gresta Paulino Murta

MySQL. Transacções em MySQL

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Classes de Entidades Persistentes JDB

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

JAVA 14 ODBC / JDBC Aceder a Bases de Dados através da Internet. Vitor Vaz da Silva

CURSO DESENVOLVEDOR JAVA Edição 2010

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

JDBC Java Database Connectivity

JDBC DRIVER. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC.

HIBERNATE Criando um projeto em Java + Hibernate do zero

Java para WEB com Hibernate e Struts 2. Duração 52 horas/aula. Objetvo

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

UFG - Instituto de Informática

Padrões de Projeto e Persistência com DAO

SISTEMA PARA COMPOSIÇÃO E CORREÇÃO DE LISTAS DE QUESTÕES DE MÚLTIPLA ESCOLHA

WebApps em Java com uso de Frameworks

Desmistificando o Hibernate Envers em 10 passos

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Java na WEB Banco de Dados

PERSISTÊNCIA EM BANCO DE DADOS: UM ESTUDO PRÁTICO

Transcrição:

JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com

Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Java Database Connectivity (JDBC) Trabalha no mesmo nível do banco de dados. O acesso as informações contidas no banco são realizadas através de comandos SQL.

Java Database Connectivity (JDBC) (Driver) Protocolo de banco de dados CLIENTE JDBC Servidor de banco de dados Horstmann, Cay S., Cornell, Gary. Corejava 2 Volume II Recursos avançados, pág.181. São Paulo: Makron Books, 2001.

Java Database Connectivity (JDBC) Tipos de drivers JDBC: Tipo 1: JDBC ODBC bridge. Adaptação do driver ODBC para JDBC, utilizando os recursos do ODBC para se comunicar com o banco de dados; Tipo 2: JDBC Native Bridge. Converte chamadas JDBC da aplicação Java para chamadas de um driver nativo já instalado na máquina. A comunicação do driver nativo é realizada através de um protocolo proprietário;

Java Database Connectivity (JDBC) Tipos de drivers JDBC (continuação): Tipo 3: JDBC Net bridge. Biblioteca cliente Java pura. Independente Protocolo independente Banco de Dados Comunica comunica pedidos pedidos Protocolo Específico Transforma pedidos transforma Componente Servidor Tipo 4: All Java JDBC Driver. 100% escrito em Java que transforma pedidos JDBC diretamente em um protocolo específico do banco de dados.

Java Database Connectivity (JDBC) Exemplo: import java.sql.*; public class JDBC { private static Connection con = null; public JDBC() { public static Connection open() { String user = "postgres"; String pass = "postgres"; String url = "jdbc:postgresql://192.168.1.11/javanoroeste"; public static void main(string[] args) throws Exception { String sql = "SELECT * FROM jpa"; con = open(); try { Statement comando = con.createstatement(); ResultSet resultado = comando.executequery(sql); while (resultado.next()) { try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(url,user,pass); catch (Exception e) { e.printstacktrace(); return con; System.out.println(resultado.getString("nome")); System.out.println(resultado.getString("email")); catch (SQLException ex) { ex.printstacktrace(); finally { con.close();

C R U D public static Connection open() { String user = "postgres"; String pass = "postgres"; String url = "jdbc:postgresql://192.168.1.11/javanoroeste"; try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(url,user,pass); catch (Exception e) { e.printstacktrace(); return con; R E A T E public static Connection open() { String user = "postgres"; String pass = "postgres"; String url = "jdbc:postgresql://192.168.1.11/javanoroeste"; try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(url,user,pass); catch (Exception e) { E A D e.printstacktrace(); return con; return con; e.printstacktrace(); public static Connection open() { String user = "postgres"; String pass = "postgres"; String url = "jdbc:postgresql://192.168.1.11/javanoroeste"; try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(url,user,pass); catch (Exception e) { P D A T E public static Connection open() { String user = "postgres"; String pass = "postgres"; String url = "jdbc:postgresql://192.168.1.11/javanoroeste"; try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(url,user,pass); catch (Exception e) { e.printstacktrace(); return con; E L E T E

Qual a solução para armazenar objetos na tecnologia relacional?

Mapeamento Objeto/Relacional A idéia da persistência O/R é reunir as vantagens de se utilizar um modelo orientado a objetos para a construção de uma aplicação, com a performace e a confiabilidade dos bancos de dados relacionais.

Mapeamento Objeto/Relacional APLICAÇÃO SGBDR Objetos Mapeamento O/R Tabelas Interface BDR Interface BDR Figura: Doederlein, Osvaldo Pinali. Revista Java Magazine, ed. 42, p. 22.

Mapeamento Objeto/Relacional Framework Hibernate: Programação OO (herança, polimorfismo etc); Sem aumento de tempo na construção da aplicação Gratuito e aberto Portável para todos os bancos compatíveis com o padrão SQL

Mapeamento Objeto/Relacional APLICAÇÃO objetos persistentes HIBERNATE hibernate. properties mapeamento XML BANCO DE DADOS Figura: Boaglio, Fernando. Revista SQL Magazine, ed. 17, p. 40.

Mapeamento Objeto/Relacional Framework Hibernate e JDO: duas grandes ferramentas de persistência ORM. JPA: Assim como os frameworks citados acima, são baseados em POJOs (Plain Old Java Objects).

Java Persistence API 1.0 Definida na JSR 220 (Enterprise JavaBeans, Version 3.0) Forma simples de mapear objetos no banco de dados Padroniza o mapeamento O/R

Java Persistence API 1.0 Solução completa para mapeamento e persistência de objetos: modo declarativo de descrever mapeamento O/R, linguagem de consulta, ferramentas para manipular entidades Aumento de produtividade: JCP=padronização

Java Persistence API 1.0 EntityManager: responsável por praticamente todas operações de persistência de objetos PersistenceContext: área de memória que mantém os objetos que estão sendo manipulados pelo EntityManager Provedores: especificação para frameworks de persistência

Java Persistence API 1.0 Aplicação JAVA Java Persistence API Provedor JPA (Hibernate, TopLink, Kodo, OpenJPA etc) API JDBC DRIVER JDBC (MySQL, PostgreSQL, JavaDB, Oracle etc) SGBDR Adaptado de Bellia, Renato. Revista Java Magazine, ed. 44, p. 28.

Java Persistence API 1.0 Persistence Unit: Configuração do provedor JPA para localizar o banco de dados e estabelecer conexões JDBC.

Java Persistence API 1.0 Mapeamento: Classes e interfaces estão no pacote: javax.persistence Uso anotações (@) Configuração por exceção

Anotação: Java Persistence API 1.0 @Entity designa um POJO @Entity public class Funcionario implements Serializable {...

Anotação: Java Persistence API 1.0 @Table Por padrão, a JPA assume que todos os campos persistentes de uma entidade serão armazenados em um BD com o mesmo nome da entidade. @Entity @Table(name="FUN") public class Funcionario implements Serializable {...

Anotação: Java Persistence API 1.0 @Column por padrão, a JPA assume que o nome de cada atributo corresponde ao mesmo nome na tabela @Entity public class Funcionario implements Serializable {... @Column(name="FUN_ID") private Long Id;...

Anotação: Java Persistence API 1.0 @Id identificador da chave primária @Entity public class Funcionario implements Serializable {... @Id @Column(name="FUN_ID") private Long Id;...

Anotação: Java Persistence API 1.0 @NamedQuery cria consulta pré definida (estática) associado com o @Entity @Entity @NamedQuery(name = ConsultaPorId, query = SELECT f FROM Funcionarios f WHERE f.id = :id ) public class Funcionario implements Serializable {...

Java Persistence API 1.0 Outras anotações mais comuns: @GeneratedValue geração automática de identificadores @Temporal para informações relacionadas ao tempo (DATE, TIME e TIMESTAMP) @OneToMany para relacionamentos um para muitos em BD relacional @ManyToOne para relacionamento muitos para um em BD relacional

Demonstração

JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com