Objetivo<\/b><\/p>\n
O Hibernate \u00e9 o framework que fornece ferramentas para o mapeamento relacional de objeto (ORM).
\nEste tutorial demonstra o suporte para o framework do Hibernate no IDE Eclipse e como criar os arquivos necess\u00e1rios do Hibernate. Depois de criar objetos Java e configurar a aplica\u00e7\u00e3o usar o Hibernate, voc\u00ea cria uma classe de teste para a inclus\u00e3o e exibi\u00e7\u00e3o dos dados existentes no Banco de Dados.<\/p>\n
<\/p>\n
Configura\u00e7\u00e3o <\/b><\/p>\n
Utilizaremos neste tutorial a vers\u00e3o 4.2.7. Para isso acesse o site oficial do Hibernate: http:\/\/www.hibernate.org\/ 1. Criando Uma aplica\u00e7\u00e3o<\/b><\/p>\n Abra o seu eclipse. Acesse o menu File >> Project >> Java project<\/p>\n <\/a><\/p>\n [sb_easy_image num=”1″ column=”1″ order=”random” size=”full” link=”lightbox” ids=”248″ ]<\/p>\n <\/a><\/p>\n Informe o nome AcademicNet e selecione Finish.<\/p>\n <\/a><\/p>\n <\/a><\/p>\n Teremos o resultado acima.<\/p>\n Criaremos uma pasta para adicionar os arquivos do Hibernate. Acesse: File >> New >> Folder<\/p>\n <\/a><\/p>\n Selecione seu projeto e crie uma Pasta chamada lib.<\/p>\n <\/a><\/p>\n Descompacte o arquivo que voc\u00ea fez o download do Hibernate.<\/p>\n <\/a><\/p>\n Em seguida copie os arquivos da subpasta \u201clib\/required\u201d para esta pasta que voc\u00ea acabou de criar no projeto.<\/p>\n Seu projeto ficar\u00e1 assim:<\/p>\n <\/a><\/p>\n Agora voc\u00ea deve associar os arquivos ao Build Path<\/b> do projeto. <\/a><\/p>\n Selecione a aba \u201cLibraries\u201d<\/p>\n <\/a><\/p>\n Clique no bot\u00e3o \u201cAdd JARs…\u201d <\/b> no canto superior direito. Localize a pasta lib e selecione os arquivos JARS. Selecione OK.<\/p>\n <\/a><\/p>\n <\/a><\/p>\n Selecione o bot\u00e3o \u201cOK\u201d novamente. Agora faremos a codifica\u00e7\u00e3o do projeto.<\/p>\n 2. Criaremos as classes de Entidade <\/b><\/p>\n Selecione a pasta \u201csrc\u201d com bot\u00e3o direito do mouse. New >> Class<\/p>\n <\/a><\/p>\n Preencha os campos conforme a imagem abaixo:<\/p>\n <\/a><\/p>\n Por fim selecione \u201cFinish\u201d.<\/b> 3. Criaremos a Classe HibernateUtil<\/b><\/p>\n Esta \u00e9 a classe respons\u00e1vel por pegar a conex\u00e3o com o Banco de dados. <\/a><\/p>\n Insira o c\u00f3digo abaixo na classe.<\/p>\n 4. Criaremos as classes DAO<\/b><\/p>\n Selecione a pasta \u201csrc\u201d com bot\u00e3o direito do mouse. New >> Class. Preencha os campos conforme a imagem abaixo:<\/p>\n <\/a><\/p>\n Insira o c\u00f3digo abaixo na classe.<\/p>\n … Selecione a pasta \u201csrc\u201d com bot\u00e3o direito do mouse. New >> Class. Preencha os campos conforme a imagem abaixo:<\/p>\n <\/a><\/p>\n Por fim selecione \u201cFinish\u201d.<\/b><\/p>\n Insira o c\u00f3digo abaixo na classe.<\/p>\n 6. Criaremos o arquivo de configura\u00e7\u00e3o do Hibernate<\/b><\/p>\n Selecione a pasta \u201csrc\u201d com bot\u00e3o direito do mouse. New >> Other.. >> XML >> XML File. Preencha os campos conforme a imagem abaixo:<\/p>\n <\/a><\/p>\n <\/a><\/p>\n Por fim selecione \u201cFinish\u201d.<\/b><\/p>\n Insira o c\u00f3digo abaixo no arquivo \u201chibernate.cfg.xml\u201d. Nesse arquivos temos as seguintes dados:<\/p>\n Conex\u00e3o com o banco de dados:<\/p>\n 7. Adicionar o Driver de Banco de Dados<\/b><\/p>\n Neste nosso exemplo utilizaremos o Banco PostgreSQL. Para isso devemos ter o Driver espec\u00edfico de cada banco de dados. Link Direto para baixar o driver de banco de dados: http:\/\/jdbc.postgresql.org\/download\/postgresql- <\/a><\/p>\n Selecione o seu projeto com o bot\u00e3o direito. Acesse Build Path >> Configure Build Path… Ser\u00e1 exibida a seguinte tela:<\/p>\n <\/a><\/p>\n Selecione a Aba \u201cLibraries\u201d<\/p>\n <\/a><\/p>\n <\/a><\/p>\n Clique em OK.<\/p>\n 8. Criaremos o Banco de Dados<\/b><\/p>\n \u00c9 necess\u00e1rio criar o banco de dados para que o Hibernate consiga criar as estruturas de tabelas. Abra o pgAdminIII.<\/p>\n Selecione o servidor com um duplo clique. Selecione o n\u00f3 Database com o bot\u00e3o direito >> \u201cNew Data Base\u201d. <\/a><\/p>\n <\/a><\/p>\n Selecione \u201cOK\u201d<\/b><\/p>\n Seu banco estar\u00e1 criado.<\/p>\n <\/a><\/p>\n V\u00e1 ao Eclipse selecione a sua classe AlunoTeste com o bot\u00e3o direito<\/p>\n Selecione \u201cRun As\u201d \u0001 >> Java Application.<\/p>\n Na console dever\u00e1 aparecer um resultado parecido com esse na console.<\/p>\n 9. Veremos o resultado no Banco de Dados<\/b><\/p>\n Selecione o seu banco de dados no pgAdmin III. E clique no bot\u00e3o (exibido na barra de menu superior) com uma lupa escrita \u201cSQL\u201d<\/b>.<\/p>\n
\nLink direto: Download<\/a>
\nO arquivo compactado tem v\u00e1rias pastas. A mais importante para n\u00f3s ser\u00e1 a pasta lib\\riquered.
\nUtilizaremos esses arquivos em nossa aplica\u00e7\u00e3o.<\/p>\n\r\n antlr-2.7.7.jar\r\n dom4j-1.6.1.jar\r\n hibernate-commons-annotations-4.0.2.Final.jar\r\n hibernate-core-4.2.7.Final.jar\r\n hibernate-jpa-2.0-api-1.0.1.Final.jar\r\n javassist-3.18.1-GA.jar\r\n jboss-logging-3.1.0.GA.jar\r\n jboss-transaction-api_1.1_spec-1.0.1.Final.jar\r\n<\/pre>\n
\nSelecione o seu projeto com o bot\u00e3o direito. Acesse Build Path >> Configure Build Path… Ser\u00e1 exibida a seguinte tela:<\/p>\n
\n Adicione o seguinte c\u00f3digo a sua classe.<\/p>\n\r\npackage br.com.curso.entidade;\r\n\r\nimport java.io.Serializable;\r\n\r\nimport javax.persistence.Entity;\r\nimport javax.persistence.GeneratedValue;\r\nimport javax.persistence.Id;\r\n\r\n@Entity\r\npublic class Aluno implements Serializable{\r\n\tprivate static final long serialVersionUID = -309513637403441918L;\r\n\r\n\t@Id\r\n\t@GeneratedValue\r\n\tprivate Long matricula;\r\n\t\r\n\tprivate String nome;\r\n\t\r\n\tprivate String telefone;\r\n\r\n\tpublic Long getMatricula() {\r\n\t\treturn matricula;\r\n\t}\r\n\r\n\tpublic void setMatricula(Long matricula) {\r\n\t\tthis.matricula = matricula;\r\n\t}\r\n\r\n\tpublic String getNome() {\r\n\t\treturn nome;\r\n\t}\r\n\r\n\tpublic void setNome(String nome) {\r\n\t\tthis.nome = nome;\r\n\t}\r\n\r\n\tpublic String getTelefone() {\r\n\t\treturn telefone;\r\n\t}\r\n\r\n\tpublic void setTelefone(String telefone) {\r\n\t\tthis.telefone = telefone;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"Aluno [matricula=\" + matricula + \", nome=\" + nome\r\n\t\t\t\t+ \", telefone=\" + telefone + \"]\";\r\n\t}\r\n\r\n}\r\n<\/pre>\n
\nSelecione a pasta \u201csrc\u201d com bot\u00e3o direito do mouse. New >> Class. Preencha os campos conforme a
\nimagem abaixo:<\/p>\n\r\npackage br.com.curso.dao;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.cfg.Configuration;\r\nimport org.hibernate.service.ServiceRegistry;\r\nimport org.hibernate.service.ServiceRegistryBuilder;\r\nimport org.hibernate.tool.hbm2ddl.SchemaExport;\r\n\r\npublic class HibernateUtil {\r\n\r\n\tprivate static SessionFactory sessionFactory = null;\r\n\tprivate static ServiceRegistry serviceRegistry;\r\n\r\n\tstatic {\r\n\t\ttry {\r\n\t\t\tsessionFactory = getSessionFactory();\r\n\t\t} catch (Throwable ex) {\r\n\t\t\tSystem.err.println(\"Initial SessionFactory creation failed.\" + ex);\r\n\t\t\tthrow new ExceptionInInitializerError(ex);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static SessionFactory getSessionFactory() {\r\n\t\tif (sessionFactory == null) {\r\n\t\t\tConfiguration configuration = new Configuration();\r\n\t\t\tconfiguration.configure();\r\n\t\t\tserviceRegistry = new ServiceRegistryBuilder().applySettings(\r\n\t\t\t\t\tconfiguration.getProperties()).buildServiceRegistry();\r\n\t\t\tsessionFactory = configuration.buildSessionFactory(serviceRegistry);\r\n\t\t\tsessionFactory.openSession();\r\n\t\t\treturn sessionFactory;\r\n\t\t}\r\n\t\treturn sessionFactory;\r\n\t}\r\n\r\n\tpublic static Session getSession() {\r\n\t\treturn sessionFactory.openSession();\r\n\t}\r\n\r\n\tpublic static void gerarBanco() {\r\n\t\t\/\/ Carrega as configura\u00e7\u00f5es do arquivo\r\n\t\t\/\/ hibernate.cfg.xml\r\n\t\tConfiguration conf = new Configuration();\r\n\t\tconf.configure();\r\n\t\tSchemaExport se2 = new SchemaExport(conf);\r\n\t\t\/\/ Executa a opera\u00e7\u00e3o da cria\u00e7\u00e3o do Banco de Dados\r\n\t\tse2.create(true, true);\r\n\t}\r\n\r\n}\r\n\r\n<\/pre>\n
\r\npackage br.com.curso.dao;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.hibernate.Criteria;\r\nimport org.hibernate.Session;\r\nimport org.hibernate.criterion.Order;\r\nimport org.hibernate.criterion.Restrictions;\r\n\r\nimport br.com.curso.entidade.Aluno;\r\n\r\npublic class AlunoDAO {\r\n\r\n\tprivate Session session;\r\n\r\n\tpublic void incluir(Aluno aluno) {\r\n\t\ttry {\r\n\t\t\tsession = HibernateUtil.getSession();\r\n\t\t\tsession.beginTransaction();\r\n\t\t\tsession.save(aluno);\r\n\t\t\tsession.getTransaction().commit();\r\n\t\t} catch (Exception e) {\r\n\t\t\tsession.getTransaction().rollback();\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tsession.close();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic void alterar(Aluno aluno) {\r\n\t\ttry {\r\n\t\t\tsession = HibernateUtil.getSession();\r\n\t\t\tsession.beginTransaction();\r\n\t\t\tsession.merge(aluno);\r\n\t\t\tsession.getTransaction().commit();\r\n\t\t} catch (Exception e) {\r\n\t\t\tsession.getTransaction().rollback();\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tsession.close();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic void excluir(Aluno aluno) {\r\n\t\ttry {\r\n\t\t\tsession = HibernateUtil.getSession();\r\n\t\t\tsession.beginTransaction();\r\n\t\t\tsession.delete(aluno);\r\n\t\t\tsession.getTransaction().commit();\r\n\t\t} catch (Exception e) {\r\n\t\t\tsession.getTransaction().rollback();\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tsession.close();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic Aluno consultar(int codigo) {\r\n\t\tAluno retorno = new Aluno();\r\n\t\ttry {\r\n\t\t\tsession = HibernateUtil.getSession();\r\n\t\t\tsession.beginTransaction();\r\n\t\t\tretorno = (Aluno) session.get(Aluno.class, codigo);\r\n\t\t\tsession.getTransaction().commit();\r\n\t\t} catch (Exception e) {\r\n\t\t\tsession.getTransaction().rollback();\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tsession.close();\r\n\t\t}\r\n\t\treturn retorno;\r\n\t}\r\n\r\n\t@SuppressWarnings(\"unchecked\")\r\n\tpublic List
\n5. Criaremos as classes de Teste <\/b><\/p>\n\r\n\r\npackage br.com.curso.teste;\r\n\r\nimport java.util.List;\r\n\r\nimport br.com.curso.dao.AlunoDAO;\r\nimport br.com.curso.entidade.Aluno;\r\n\r\npublic class AlunoTeste {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tnew AlunoTeste().incluirAluno();\r\n\t}\r\n\r\n\t\r\n\r\n\tpublic void incluirAluno() {\r\n\t\tSystem.out.println(this.getClass() + \"Inicio\");\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ Cria a inst\u00e2ncia de um classe de acesso a Dados\r\n\t\t\tAlunoDAO dao = new AlunoDAO();\r\n\t\r\n\r\n\t\t\t\/\/Cria um objeto aluno informando apenas o nome\r\n\t\t\tAluno aluno1 = new Aluno();\r\n\t\t\taluno1.setNome(\"Jose da Silva\");\r\n\t\t\t\r\n\t\t\t\/\/Cria um objeto aluno informando apenas o nome\r\n\t\t\tAluno aluno2 = new Aluno();\r\n\t\t\taluno2.setNome(\"Maria da Silva\");\r\n\t\t\t\r\n\t\t\t\/\/Realiza a inclus\u00e3o de um aluno\r\n\t\t\tdao.incluir(aluno1);\r\n\t\t\t\r\n\t\t\t\/\/Realiza a inclus\u00e3o de um aluno\r\n\t\t\tdao.incluir(aluno2);\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\/\/ Consulta a lista de usu\u00e1rios cadastrados no Banco\r\n\t\t\tList
\r\n\r\n\r\n\r\n
\nO Site oficial do PostgreSQL \u00e9 esse http:\/\/jdbc.postgresql.org\/download.html. Acesse e conhe\u00e7a um pouco mais sobre este banco. Fa\u00e7a o Download o Manual do usu\u00e1rio para consultar quando tiver d\u00favidas.<\/p>\n
\n9.3-1100.jdbc4.jar
\nSalve o arquivo diretamente na pasta lib<\/b> criada em nosso projeto.
\nEm seguida \u00e9 necess\u00e1rio fazer o apontamento do arquivo no projeto.<\/p>\n
\nDigite o nome do nosso banco de dados “BDAcademicNet”<\/p>\n\r\n\r\nHibernate:\r\nselect\r\nnextval ('hibernate_sequence')\r\nHibernate:\r\ninsert\r\ninto\r\nAluno\r\n(nome, telefone, matricula)\r\nvalues (?, ?, ?)\r\nHibernate:\r\nselect\r\nnextval ('hibernate_sequence')\r\nHibernate:\r\ninsert\r\ninto\r\nAluno\r\n(nome, telefone, matricula)\r\nvalues\r\n(?, ?, ?)\r\nHibernate:\r\nselect\r\nthis_.matricula as matricul1_0_0_,\r\nthis_.nome as nome2_0_0_,\r\nthis_.telefone as telefone3_0_0_\r\nfrom\r\nAluno this_\r\n================== Alunos Cadastrados ============================\r\nAluno [matricula=1, nome=Jose da Silva, telefone=null]\r\nAluno [matricula=2, nome=Maria da Silva, telefone=null]\r\nclass br.com.curso.teste.AlunoTesteFim\r\n\r\n<\/pre>\n