Post on 18-Dec-2014
description
Mini-curso JPA com
Hibernate
I Café com Tapioca em SobralI Café com Tapioca em Sobral
Rafael CarneiroRafael Carneiro
Nuvem de tags
JPA Hibernate
EntityManagerToplink annotations
Criteria
JPA Hibernate
persistence.xmlJSR 220
JDBC
Gavin King
O que é persistência?
Como era antes (com JDBC)
Configurações do banco
Configurações do banco
Obtendo uma conexão
Obtendo uma conexão
Inserindo um usuário no banco
Inserindo um usuário no banco
Pesquisando um usuário no banco
Pesquisando um usuário no banco
Pesquisando um usuário no banco
POG, ☺POG, ☺
Pesquisando um usuário no banco
(continuação...)
Mas...pra quê tudo isso?
KISS...KISS...
please!
Mas...pra quê tudo isso?
Keep ItKeep It
Simple,
Stupid!
Como é agora
JPA
� acrônimo de Java Persistence API
� framework de mapeamento objeto-relacional
� foi baseado na implementação do Hibernate
� faz parte da especificação EJB 3.0, sob a JSR de� faz parte da especificação EJB 3.0, sob a JSR de
número 220
� atualmente se encontra na versão 1.0 e a versão 2.0
está no forno para sair em breve
� facilitou e muito a vida dos desenvolvedores
� utilização de classes POJO
JPA
� configurações através de Annotations
� é um padrão JavaEE
� várias implementações disponíveis (Toplink,
Hibernate, OpenJPA, Kodo, etc)Hibernate, OpenJPA, Kodo, etc)
� utiliza JDBC por debaixo dos panos
� utilizado em containers JEE e ambientes JSE
� atualmente é arquitetura de referência para
aplicativos Java
JPA: arquitetura
Aplicação Java
Java Persistence API
Hibernate Toplink Kodo
Implementações
JPA: arquitetura
persistence.xml
EntityManager
Transações
Persistence
EntityManagerFactory
EntityManager
Query
JPA: o EntityManager
� é a principal interface da JPA que interage com o
contexto de persistência
� um contexto de persistência é um conjunto de
instâncias de entidadeinstâncias de entidade
� essa interface define os métodos que serão utilizados
para interagir com esse contexto
� interface utilizada para criar, remover, pesquisar e
atualizar entidades
JPA: principais métodos
� void persist(Object entity): faz uma instância de
entidade gerenciada e persistente
� void remove(Object entity): remove uma entidade� void remove(Object entity): remove uma entidade
� void refresh(Object entity): atualiza o estado de uma
instância/entidade do banco de dados
� <T> T find(Class<T> entityClass, Object primaryKey):
pesquisa por uma chave primária
Mão na massa
� criar um projeto na sua IDE preferida
� criar um arquivo chamado persistence.xml, dentro do
diretório META-INF e em sourcesdiretório META-INF e em sources
� crie uma entidade Usuario, que possui um id (Long) e
um nome (String)
� criar uma classe chamada TesteJPA que contenha um
método main
� criar, atualizar, pesquisar e remover uma entidade
(Usuario) no banco de dados utilizando JPA
Livros
Ah-rá! Eu sei o que é Hibernate!
Um pouco de história...
Mas... e o Hibernate?
� possui algumas características da JPA» framework de mapeamento objeto-relacional
» junto com JPA, é padrão de mercado
» utiliza JDBC por debaixo dos panos» utiliza JDBC por debaixo dos panos
» configurações através de Annotations
» e muito mais...
� foi criado pelo Gavin King, um dos membrosda JSR 220 (JPA) e criador do JBoss Seam
Mas... e o Hibernate?
� é mantido pela JBoss
� é free e open source
� está no mercado a mais de 6 anos� está no mercado a mais de 6 anos
Porém...
� possui um fórum com cerca de 30 milparticipantes
� é o framework de persistência Java maisutilizado do mercadoutilizado do mercado
� possui inúmeras features que a versão 1.0da JPA não implementou (como o Criteria)
� cache
� pode ser utilizado em cluster
Alternativas ao Hibernate
Livros
Mão na massa
� criar um projeto na sua IDE preferida
� criar um arquivo chamado hibernate.cfg.xml, em
sourcessources
� utilize a entidade Usuario criada no exercício anterior
� criar uma classe chamada TesteHibernate que
contenha um método main
� criar, atualizar, pesquisar e remover uma entidade
(Usuario) no banco de dados utilizando Hibernate
Download da apresentação e
exemplos: www.rafaelcarneiro.org
Cursos de Java:
www.fa7.com.br/formacaojavawww.fa7.com.br/formacaojava