SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Mini-curso JPA com
     Hibernate


    Rafael Carneiro




                I Café com Tapioca em Sobral
Nuvem de tags

 Criteria
              EntityManager
               Toplink   annotations
 JPA          Hibernate            JDBC

persistence.xml          JSR 220
      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, ☺
Pesquisando um usuário no banco
        (continuação...)
Mas...pra quê tudo isso?


KISS...
please!
Mas...pra quê tudo isso?

Keep 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
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)
 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

                        Transações
                                     EntityManager
    Persistence


                                        Query

 EntityManagerFactory
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 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 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 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
  » configurações através de Annotations
  » e muito mais...

 foi criado pelo Gavin King, um dos membros
da 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
Porém...
  possui um fórum com cerca de 30 mil
participantes
 é o framework de persistência Java mais
utilizado do mercado
 possui inúmeras features que a versão 1.0
da 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
sources
  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/formacaojava

Weitere ähnliche Inhalte

Was ist angesagt?

Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Bancos de Dados Orientados a Objeto
Bancos de Dados Orientados a ObjetoBancos de Dados Orientados a Objeto
Bancos de Dados Orientados a Objetoelliando dias
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotaçõesdieguinhomcz
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com HibernateDanilo Braga
 
Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objetoelliando dias
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Elvis Rocha
 
xDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletxDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletDenis L Presciliano
 

Was ist angesagt? (19)

Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Minicurso jpa e hibernate
Minicurso jpa e hibernateMinicurso jpa e hibernate
Minicurso jpa e hibernate
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Hibernate - Aula 01
Hibernate - Aula 01Hibernate - Aula 01
Hibernate - Aula 01
 
Bancos de Dados Orientados a Objeto
Bancos de Dados Orientados a ObjetoBancos de Dados Orientados a Objeto
Bancos de Dados Orientados a Objeto
 
Hibernate
HibernateHibernate
Hibernate
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotações
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com Hibernate
 
Banco de Dados Orientado a Objeto
Banco de Dados Orientado a ObjetoBanco de Dados Orientado a Objeto
Banco de Dados Orientado a Objeto
 
Tag Libraries
Tag LibrariesTag Libraries
Tag Libraries
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Jpa, hibernate and jpql
Jpa, hibernate and jpqlJpa, hibernate and jpql
Jpa, hibernate and jpql
 
Java 14
Java 14Java 14
Java 14
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
xDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdocletxDocLet - Geração de código com xdoclet
xDocLet - Geração de código com xdoclet
 

Ähnlich wie JPA com Hibernate

Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotaçõesdieguinhomcz
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com HibernateDanilo Braga
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Edgar Silva
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBAdriano Teixeira de Souza
 
Workshop Hibernate Com Comentarios
Workshop Hibernate Com ComentariosWorkshop Hibernate Com Comentarios
Workshop Hibernate Com ComentariosMarcelo Mrack
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
Bancos de dados e jdbc java para desenvolvimento web
Bancos de dados e jdbc   java para desenvolvimento webBancos de dados e jdbc   java para desenvolvimento web
Bancos de dados e jdbc java para desenvolvimento websilvio_sas
 

Ähnlich wie JPA com Hibernate (20)

Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotações
 
Hibernate
HibernateHibernate
Hibernate
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com Hibernate
 
Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
Compweek
CompweekCompweek
Compweek
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
JAVA / JPA
JAVA / JPAJAVA / JPA
JAVA / JPA
 
Workshop Hibernate Com Comentarios
Workshop Hibernate Com ComentariosWorkshop Hibernate Com Comentarios
Workshop Hibernate Com Comentarios
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Bancos de dados e jdbc java para desenvolvimento web
Bancos de dados e jdbc   java para desenvolvimento webBancos de dados e jdbc   java para desenvolvimento web
Bancos de dados e jdbc java para desenvolvimento web
 
Hibernate
HibernateHibernate
Hibernate
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 

Mehr von Rafael Carneiro

Como escolher um framework web
Como escolher um framework webComo escolher um framework web
Como escolher um framework webRafael Carneiro
 
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0Rafael Carneiro
 

Mehr von Rafael Carneiro (7)

Como escolher um framework web
Como escolher um framework webComo escolher um framework web
Como escolher um framework web
 
O Desenvolvedor Web
O Desenvolvedor WebO Desenvolvedor Web
O Desenvolvedor Web
 
Jazoon 08
Jazoon 08Jazoon 08
Jazoon 08
 
Certificações Java
Certificações JavaCertificações Java
Certificações Java
 
Apresentando o Cejug
Apresentando o CejugApresentando o Cejug
Apresentando o Cejug
 
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 

JPA com Hibernate

  • 1. Mini-curso JPA com Hibernate Rafael Carneiro I Café com Tapioca em Sobral
  • 2. Nuvem de tags Criteria EntityManager Toplink annotations JPA Hibernate JDBC persistence.xml JSR 220 Gavin King
  • 3. O que é persistência?
  • 4. Como era antes (com JDBC)
  • 13. Pesquisando um usuário no banco POG, ☺
  • 14. Pesquisando um usuário no banco (continuação...)
  • 15. Mas...pra quê tudo isso? KISS... please!
  • 16. Mas...pra quê tudo isso? Keep It Simple, Stupid!
  • 18. 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 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
  • 19. JPA configurações através de Annotations é um padrão JavaEE várias implementações disponíveis (Toplink, 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
  • 20. JPA: arquitetura Aplicação Java Java Persistence API Hibernate Toplink Kodo Implementações
  • 21. JPA: arquitetura persistence.xml Transações EntityManager Persistence Query EntityManagerFactory
  • 22. 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 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
  • 23. 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 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
  • 24. 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 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
  • 26. Ah-rá! Eu sei o que é Hibernate!
  • 27. Um pouco de história...
  • 28. 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 » configurações através de Annotations » e muito mais... foi criado pelo Gavin King, um dos membros da JSR 220 (JPA) e criador do JBoss Seam
  • 29. Mas... e o Hibernate? é mantido pela JBoss é free e open source está no mercado a mais de 6 anos
  • 30. Porém... possui um fórum com cerca de 30 mil participantes é o framework de persistência Java mais utilizado do mercado possui inúmeras features que a versão 1.0 da JPA não implementou (como o Criteria) cache pode ser utilizado em cluster
  • 33. Mão na massa criar um projeto na sua IDE preferida criar um arquivo chamado hibernate.cfg.xml, em sources 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
  • 34. Download da apresentação e exemplos: www.rafaelcarneiro.org Cursos de Java: www.fa7.com.br/formacaojava