Desenvolvendo Java puro com Hibernate e Mysql

Atenção: não apresentarei como criar um BD ou como configurar o Hibernate no Eclipse, estou considerando que você já tem um ambiente de desenvolvimento pronto para entrar em ação.

Dados do DataBase:

  • Crie um DataBase (usarei uma chamada livraria)
  • Crie uma tabela (usarei uma tabela com o nome camilo)
  • Dados da tabela: id(auto_increment), nome(varchar), cidade(varchar)

Preparação do projeto

  1. Crie um o Java Project no Eclipse com o nome que achar conveniente.
  2. Agora crie uma estrutura de packages conforme a imagem a seguir:
  3. Adicione os arquivos .jars do mysql, hibernate + JPA ao projeto. Clique com o botão direito no projeto escolha Properties e depois clique em JavaBuild. Na tela que aparece, clique em Add external jars (caso nao tenha uma Library para os .jars).

 

Desenvolvimento/Teste

Agora, crie uma classe Java com nome de Pessoa no package br.com.bean.

package br.com.bean;
/*se os arquivos .jars nao estiver no projeto
 * nao será possivel encontrar os imports
 */
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="camilo")
public class Pessoa {

 private String nome;
 private String cidade;
 @Id
 int id;
 public String getNome() {
  return nome;
 }
 public void setNome(String nome) {
  this.nome = nome;
 }
 public String getCidade() {
  return cidade;
 }
 public void setCidade(String cidade) {
  this.cidade = cidade;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
}

Crie uma classe ConexaoHibert.java no package br.com.conexao

private static final SessionFactory sessionFactory;
 private static final ThreadLocal<Session> threadLocal =
  new ThreadLocal<Session>();
 /* observe o que temos de importante
  * nesse bloco static, o arquivo
  * que possui os dados de conexao com
  * o banco de dados hibernateconfig.xml
  */
 static{
  try{
   sessionFactory = new  AnnotationConfiguration().
   configure("hibernateconfig.xml")
   .buildSessionFactory();

  }catch (Throwable e) {
   throw new ExceptionInInitializerError(e);
  }
 }
 //retorna uma sessao de comunicacao com o BD
 public static Session getInstance(){
  Session session = (Session) threadLocal.get();
  session = sessionFactory.openSession();
  threadLocal.set(session);
  return session;
 }

Crie uma classe PessoaDAO no package br.com.hibernatedao

package br.com.hibernatedao;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.bean.Pessoa;
import br.com.conexao.ConexaoHibert;

public class PessoaDAO {
 private Session session;

 public void Salvar(Pessoa p){
  //obtem uma sessao
  session = ConexaoHibert.getInstance();
  Transaction tx = null; //permite transacao com o BD

  try{
   tx = session.beginTransaction();
   session.save(p);
   tx.commit();//faz a transacao
  }catch (Exception e) {
   e.printStackTrace();
   //cancela a transcao em caso de falha
   tx.rollback();
  }finally{
   session.close();
  }}}

Agora crie uma arquivo .xml conforme o código abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="">
  <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/livraria</property>
  <property name="hibernate.connection.username">camilo</property>
  <property name="hibernate.connection.password">123</property>
  <mapping/>
 </session-factory>
</hibernate-configuration>

Fique atento aos nomes usado na classe Pessoa.java para fazer anotação. Veja que eu tenho o nome da tabela no BD diferente do nome da minha classe Java (fiz de propósito). Então, somos obrigados a definir o nome da tabela, caso contrário a JPA vai considerar o nome da classe.

Crie uma classe no package br.com.teste com o nome de PessoaTest.java.

package br.com.teste;

import br.com.bean.Pessoa;
import br.com.hibernatedao.PessoaDAO;

public class PessoaTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  Pessoa p = new Pessoa();
  p.setNome("mel");
  p.setCidade("Salvador");
  PessoaDAO pdao = new PessoaDAO();
   pdao.Salvar(p); }}

Salve e execute a classe PessoaTest.java e verifique se os dados foram inseridos no BD.

Fonte: http://imasters.com.br/artigo/20090/java/desenvolvendo-java-puro-com-hibernate-e-mysql/

Deixe um comentário