Páginas

segunda-feira, 25 de novembro de 2013

HIBERNATE - Aplicação Simples

Após nossa "pequena" explicação sobre o Hibernate no post anterior, vamos explicar como persistir um objeto no banco de dados utilizando o framework Hibernate.
O tutorial será bem simples, vamos apenas cadastrar uma pessoa no banco de dados.


Para este tutorial vamos utilizar as seguintes ferramentas:

Após baixar estas ferramentas vamos criar um novo projeto Java no Eclipse. Criei o meu com o nome de ProjetoHibernate, mas você pode dar o nome que quiser.



Agora precisamos criar uma pasta para armazenar os jar que iremos precisar.
Criei a pasta com o nome lib.



Descompacte a pasta que você baixou do Hibernate, dentro dela há uma pasta chamada lib, dentro desta pasta há uma pasta chamada required. Copie todos os jars dessa pasta e coloque na nossa pasta lib, esta que acabamos de criar. Adicione também o jar do seu banco de dados de preferencia. Neste tutorial utilizei o PostegreSQL, portanto é o jar dele que adicionei na pasta lib.
Não esqueça de adicionar os jars para a Build Path.



Agora vamos falar do arquivo de configuração do Hibernate, o hibernate.cfg.xml
Ele deve estar dentro da pasta src do seu projeto.


 
  org.postgresql.Driver
  org.hibernate.dialect.PostgreSQLDialect
  postgres
  postgres
  jdbc:postgresql://localhost:5432/exemploCadastro
  true
  create


Na terceira linha do arquivo acima, estamos definindo o driver de conexão com o banco de dados, lembrando que para este tutorial foi utilizado o sistema gerenciador de banco de dados PostegreSQL.
Na quarta linha definimos o dialect,  ele define qual variação do SQL será utilizada.
Na quinta e na sexta linha, encontram-se o usuário e a senha do banco de dados.
Na sétima linha informamos a url do nosso banco de dados.
A propriedade show_sql que aparece na oitava linha faz com que todo SQL gerado pelo Hibernate apareça no console.
Na propriedade hbm2ddl.auto utilizei a opção create, isso significa que o Hibernate irá criar as minhas tabelas toda vez que eu rodar a aplicação. Caso alguma tabela já exista, ela irá deleta-lá e para cria-lá novamente.

Até agora nosso projeto deve estar da seguinte forma:


Vamos iniciar nossa aplicação criando a classe Pessoa:
package modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;


@Entity(name="pessoa")
public class Pessoa {
 
 @Id
 @GeneratedValue
 private int id; 
 
 private String nome;

 public int getId() {
  return id;
 }

 public String getNome() {
  return nome;
 }

 public void setId(int id) {
  this.id = id;
 }

 public void setNome(String nome) {
  this.nome = nome;
 } 
  
}
Reparem que utilizei apenas três anotações:
@Entity(name="pessoa") : significa que essa minha classe está representando a tabela
pessoa no meu banco de dados.
@Id : significa que este atributo é o id da minha tabela.
@GeneratedValue : significa que o Hibernate estará encarregado de gerar o valor de cada id desta tabela.


A próxima classe a ser criada é o HibernateUtil, ela tem o objetivo de criar e configurar a sessão para utilizar o hibernate.
package util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

 public static final SessionFactory session = buildSession();

 private static SessionFactory buildSession() {

  try {

   Configuration cfg = new Configuration();
   cfg.configure("hibernate.cfg.xml");

   return cfg.buildSessionFactory();

  } catch (Throwable b) {
   System.out.println("Não deu \n" + b);
   throw new ExceptionInInitializerError();
  }
 }

 public static SessionFactory getSessionFactory() {
  return session;
 }

}

O método private static SessionFactory buildSession() instancia um objeto da classe Configuration que possui o método configure, o qual busca na pasta raiz das classe java o arquivo de configuração do hibernate.


Por fim, vamos criar nossa classe de Teste:

package view;

import modelo.Pessoa;
import org.hibernate.Session;
import util.HibernateUtil;

public class Teste {

 public static void main(String[] args) {

  Session session = HibernateUtil.getSessionFactory().openSession();

  Pessoa pessoa1 = new Pessoa();
  pessoa1.setNome("Maria");

  Pessoa pessoa2 = new Pessoa();
  pessoa2.setNome("Joao");

  Pessoa pessoa3 = new Pessoa();
  pessoa3.setNome("Pedro");

  // realizando operação para salvar no banco
  session.beginTransaction();
  session.save(pessoa1);
  session.save(pessoa2);
  session.save(pessoa3);
  session.getTransaction().commit();
  session.close();
 }

}

Na linha 11, a classe Teste instancia um objeto da classe Session para receber as configurações da sessão do hibernate e abri a sessão. 
Feito isso, criei três objetos do tipo Pessoa para salva-los no banco de dados.
Para realizar a persistência devemos iniciar a transação, realizar o método save, realizar o método commit e então fechar a sessão.
Se tudo ocorrer perfeitamente, teremos três pessoas cadastradas no nosso banco de dados.


Qualquer dúvida, entrem em contato.
Até a próxima.


Nenhum comentário:

Postar um comentário