minicurso jpa e hibernate

Post on 06-Jun-2015

1.187 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Minicurso JPA e Hibernate

Frederico Maia Arantes

Quem sou eu?

Frederico Maia Arantes – @fredmaia Programador Java EE – PC Sistemas Instrutor de cursos Java – Supera

Tecnologia Oracle Certified Professional, Java SE 6

Programmer (OCJP) Um dos coordenadores do Gojava Artigo publicado na Easy Java

Magazine http://devsexperts.com

Persistência

O que é persistência?

Persistência

O que é persistência?

Persistência

O que é persistência? Aplicações precisam armazenar seus

dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.

Persistência

O que é persistência? Aplicações precisam armazenar seus

dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.

Na maioria dos casos são utilizados banco de dados relacionais.

Persistência

O que é persistência? Aplicações precisam armazenar seus

dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.

Na maioria dos casos são utilizados banco de dados relacionais.

Em contra partida a maioria das aplicações são desenvolvidas no modelo orientado a objetos.

Persistência

Persistência

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Como resolver as diferenças?

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Como resolver as diferenças?

Como mapear as tabelas do banco de dados para os objetos em Java?

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Como resolver as diferenças?

Como mapear as tabelas do banco de dados para os objetos em Java?

Ou devemos mapear os objetos para tabelas?

Relacional x Orientado a Objetos

JDBC

JDBC (Java Database Connectivity) especificação padrão de persistência

JDBC

JDBC (Java Database Connectivity) especificação padrão de persistência

Que tal juntar os dois mundos?

JDBC

JDBC (Java Database Connectivity) especificação padrão de persistência

Que tal juntar os dois mundos? Misturar o modelo relacional com o

modelo orientado a objetos, misturar o código Java com SQL

JDBC

JDBC (Java Database Connectivity) especificação padrão de persistência

Que tal juntar os dois mundos? Misturar o modelo relacional com o

modelo orientado a objetos, misturar o código Java com SQL

Ok, show me the code!

JDBC – Conectando no BD

JDBC – Inserindo uma Pessoa

JDBC – Buscando uma Pessoa

JDBC ??

JDBC

Mapeamento nada não muito intuitivo

E se eu precisar mudar meu banco de dados?

Tenho que aprender SQL e Java? Para cada banco, o SQL pode variar Tenho que aprender o SQL de cada

banco?

Tenho mesmo que usar JDBC ??

Você precisar ser um herói !!

Tenho mesmo que usar JDBC ??

Você precisar ser um herói !!

Hibernate

O que é hibernate?

Hibernate

Hibernate

É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.

Hibernate

É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.

NOT!

Hibernate

Framework para Mapeamento Objeto Relacional (ORM)

Permite que desenvolvamos naturalmente usando o modelo orientados a objetos

Persistência transparente Simplifica o desenvolvimento Independente de banco de dados

Hibernate...

Mantido pela empresa JBoss Não faz parte da especificação

padrão do Java E se a JBoss cancelar o projeto? E se

o Hibernate parar de evoluir? (você tem essa preocupação?)

Se é tão bom, porque não colocá-lo nas tais especificações Java??

JPA (Java Persistence API)

Nova especificação para persistência Já estamos na versão 2.0 da JPA Baseada nos principais frameworks

de mercado É uma especificação portanto

precisa de frameworks que a implementem como Hibernate, EclipseLink e TopLink

Ok, show me the code!

JPA – Arquivo de Configuração

JPA – Conectando no BD

JPA – Inserindo uma Pessoa

JPA – Buscando uma Pessoa

JPA é complicado né?

JPA é complicado né?

Ué, num achei não.

JPA - Mapeamento

Mapear o modelo orientado a objetos e o modelo entidade relacionamento.

JPA - Mapeamento

Mapear o modelo orientado a objetos e o modelo entidade relacionamento.

@Entity: aparece antes do nome das classes que terão objetos persistidos no BD

JPA - Mapeamento

Mapear o modelo orientado a objetos e o modelo entidade relacionamento.

@Entity: aparece antes do nome das classes que terão objetos persistidos no BD

@Id: indica a chave primária

JPA - Mapeamento

Mapear o modelo orientado a objetos e o modelo entidade relacionamento.

@Entity: aparece antes do nome das classes que terão objetos persistidos no BD

@Id: indica a chave primária@GeneratedValue: indica que o

valor da chave primária deve ser gerado pelo BD quando um registro é inserido

Classe Java Comum

Classe Java para JPA

JPA

Que saco esse monte de teoria...

JPA - Codificando

Persistindo (persist)

Buscando (find e getReference)

Removendo (remove)

Atualizando

Listando (query, resultList)

JPA - Codificando

Transações (begin, commit)

Restrições (length, nullable, unique)

Data (@Temporal: Date, Time, Timestamp)

Atributos não persistentes (@Transiente)

JPA - Codificando

EntityManagerFactory é caro

JPAUtil retornando conexões (static)

Criando um DAO Genérico

Perguntas?

Contato

fredericomaia10@gmail.com @SuperaTI / @fredmaia

http://www.supera.com.br http://devsexperts.com

top related