50
Minicurso JPA e Hibernate Frederico Maia Arantes

Minicurso jpa e hibernate

Embed Size (px)

Citation preview

Page 1: Minicurso jpa e hibernate

Minicurso JPA e Hibernate

Frederico Maia Arantes

Page 2: Minicurso jpa e hibernate

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

Page 3: Minicurso jpa e hibernate

Persistência

O que é persistência?

Page 4: Minicurso jpa e hibernate

Persistência

O que é persistência?

Page 5: Minicurso jpa e hibernate

Persistência

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

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

Page 6: Minicurso jpa e hibernate

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.

Page 7: Minicurso jpa e hibernate

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.

Page 8: Minicurso jpa e hibernate

Persistência

Page 9: Minicurso jpa e hibernate

Persistência

Page 10: Minicurso jpa e hibernate

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Page 11: Minicurso jpa e hibernate

Relacional x Orientado a Objetos

Dois paradigmas diferentes

Como resolver as diferenças?

Page 12: Minicurso jpa e hibernate

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?

Page 13: Minicurso jpa e hibernate

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?

Page 14: Minicurso jpa e hibernate

Relacional x Orientado a Objetos

Page 15: Minicurso jpa e hibernate

JDBC

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

Page 16: Minicurso jpa e hibernate

JDBC

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

Que tal juntar os dois mundos?

Page 17: Minicurso jpa e hibernate

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

Page 18: Minicurso jpa e hibernate

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!

Page 19: Minicurso jpa e hibernate

JDBC – Conectando no BD

Page 20: Minicurso jpa e hibernate

JDBC – Inserindo uma Pessoa

Page 21: Minicurso jpa e hibernate

JDBC – Buscando uma Pessoa

Page 22: Minicurso jpa e hibernate

JDBC ??

Page 23: Minicurso jpa e hibernate

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?

Page 24: Minicurso jpa e hibernate

Tenho mesmo que usar JDBC ??

Você precisar ser um herói !!

Page 25: Minicurso jpa e hibernate

Tenho mesmo que usar JDBC ??

Você precisar ser um herói !!

Page 26: Minicurso jpa e hibernate

Hibernate

O que é hibernate?

Page 27: Minicurso jpa e hibernate

Hibernate

Page 28: Minicurso jpa e hibernate

Hibernate

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

Page 29: Minicurso jpa e hibernate

Hibernate

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

NOT!

Page 30: Minicurso jpa e hibernate

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

Page 31: Minicurso jpa e hibernate

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??

Page 32: Minicurso jpa e hibernate

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!

Page 33: Minicurso jpa e hibernate

JPA – Arquivo de Configuração

Page 34: Minicurso jpa e hibernate

JPA – Conectando no BD

Page 35: Minicurso jpa e hibernate

JPA – Inserindo uma Pessoa

Page 36: Minicurso jpa e hibernate

JPA – Buscando uma Pessoa

Page 37: Minicurso jpa e hibernate

JPA é complicado né?

Page 38: Minicurso jpa e hibernate

JPA é complicado né?

Ué, num achei não.

Page 39: Minicurso jpa e hibernate

JPA - Mapeamento

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

Page 40: Minicurso jpa e hibernate

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

Page 41: Minicurso jpa e hibernate

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

Page 42: Minicurso jpa e hibernate

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

Page 43: Minicurso jpa e hibernate

Classe Java Comum

Page 44: Minicurso jpa e hibernate

Classe Java para JPA

Page 45: Minicurso jpa e hibernate

JPA

Que saco esse monte de teoria...

Page 46: Minicurso jpa e hibernate

JPA - Codificando

Persistindo (persist)

Buscando (find e getReference)

Removendo (remove)

Atualizando

Listando (query, resultList)

Page 47: Minicurso jpa e hibernate

JPA - Codificando

Transações (begin, commit)

Restrições (length, nullable, unique)

Data (@Temporal: Date, Time, Timestamp)

Atributos não persistentes (@Transiente)

Page 48: Minicurso jpa e hibernate

JPA - Codificando

EntityManagerFactory é caro

JPAUtil retornando conexões (static)

Criando um DAO Genérico

Page 49: Minicurso jpa e hibernate

Perguntas?

Page 50: Minicurso jpa e hibernate

Contato

[email protected] @SuperaTI / @fredmaia

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