tutorial jpa e hibernate

Download Tutorial JPA e Hibernate

If you can't read please download the document

Upload: renato-alexandre

Post on 25-Dec-2015

63 views

Category:

Documents


2 download

DESCRIPTION

Tutorial básico de JPA

TRANSCRIPT

Tutorial 01 JPA + Hibernate

Criar o banco de dados no MySQL com o PHPMyAdminCertifique-se de que o XAMPP/LAMPP est instalado e que os servios Apache e MySQL esto em execuo, em sequida acesse no navegador de sua preferncia: http://localhost/phpmyadmin (ver imagem abaixo)

Clique no link Banco de Dados

Na caixa Create database informe o nome para o seu banco de dados (ver imagem abaixo)

1 - Primeiro clique aqui2 - Informe o nome do banco aqui3 - Clique aqui para criar o banco de dados

Aps digitar o nome do banco, clique no boto Criar.

Definir o usurio que ter privilgios de acesso ao banco de dados. (no aconselhvel usar o usurio root para acessar o banco de dados a partir da nossa aplicao)Clique no boto Incio

Em seguida clique no link Utilizadores ou Users (ver imagem)2 - Em seguida clique aqui para adicionar um novo usurio1 - Primeiro clique aqui para acionar a pgina inicial

Na tela de Utilizadores/Users, clique no link Adicionar utilizador (ver imagem)

1 Clique aqui para adicionar um novo usurio

Na tela que surge preencha os campos como na imagem

1 Informe um nome para o usurio aqui2 Neste campo informe o nome do servidor onde o MySQL est instalado3 Nos dois campos seguintes informe uma senha

Aps o preenchimento dos campos destacados na imagem anterior, role a pgina at o final e clique no boto Executar.

Com o usurio criado vamos definir os privilgios do mesmo, localize o usurio criado e clique no link Alterar Privilgios (ver imagem).

1 Clique neste link para alterar os privilgios do usurio

Na tela a seguir selecione o banco de dados que o usurio ter permisso de uso.

1 Role a tela para baixo at encontrar esta categoria2 Selecione o seu banco de dados aqui

Aps selecionar o banco de dados que pretendemos usar a tela ser atualizada e ficar como a imagem abaixo.

1 Para o nosso exemplo marque todas as caixas

Clique em Executar.

Criando tabelas no banco de dados.Na lateral esquerda selecione o nome do seu banco de dados (ver imagem).

1 Selecione o banco de dados2 Informe o nome da tabela e o nmero de campos/colunas da mesma3 Clique aqui para criar a tabela

Preencha os campos como a imagem abaixo e clique em Guardar.

Com o banco criado e as tabelas definidas, faremos a configurao da aplicao.

Criar configurao da conexo com o banco de dados e a aplicao.Abra o NetBeans.

Crie um novo projeto Java do tipo Aplicao Java (no crie classe principal).

Com o projeto criado clique com o boto auxiliar (direito) do mouse sobre o cone Pacotes de Cdigo Fonte e no menu seleicone a opo Outros.

Na janela que surge seleciona a categoria Persistncia.

Na rea tipo de arquivo selecione Unidade de Persistncia e clique em Prximo.

Mantenha o nome da Uinidade de Persistncia sugerido pelo Netbeans, no campo Biblioteca de Persistncia, selecione (Hibernate (JPA 2.0)).

No campo Conexo ao Banco de Dados, clique no combo-box e escolha Nova conexo de banco de dados.

Na janela do Assistente de Nova Conexo, selecione no campo Driver a opo MySQL (Connector/J driver) e clique em prximo.

Na tela seguinte, informe o nome do seu banco de dados.

No campo Nome do Usurio e a senha, informe o nome do usurio que criamos na parte 2 do tutorial, em seguida marque a caixa de verificao Lembrar senha e clique em Testar conexo.

Ser exibida uma mensagem Conexo Bem-sucedida, clique em Finalizar.

Note que voltaremos a janela inicial da configurao da Unidade de Persistncia, no campo Estratgia de Gerao de Tabela marque Nenhum e clique em Finalizar.

Ser criado um arquivo persistence.xml, este arquivo contm tudo que precisamos para nossa aplicao interagir com o banco de dados.

Criando mapeamentoCrie uma classe com o mesmo nome da tabela criada no banco de dados.

Para facilitar o nosso trabalho defina apenas os atributos da classe e em seguida adicione os mtodos: Construtor, get e set, equais e hash e toString atravs do menu de atalho ALT + Insert (Ver resultado da classe).

public class Cliente { private long id; private String nome; private String email;

public Cliente() { }

public Cliente(long id, String nome, String email) { this.id = id; this.nome = nome; this.email = email; }

public long getId() { return id; }

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

public String getNome() { return nome; }

public void setNome(String nome) { this.nome = nome; }

public String getEmail() { return email; }

public void setEmail(String email) { this.email = email; }

@Override public int hashCode() { int hash = 3; hash = 19 * hash + (int) (this.id ^ (this.id >>> 32)); return hash; }

@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Cliente other = (Cliente) obj; if (this.id != other.id) { return false; } return true; }

@Override public String toString() { return "Cliente{" + "id=" + id + ", nome=" + nome + ", email=" + email + '}'; } }

Para o mapeamento da classe adicione as anotaes destacadas abaixo.

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

@Entity@Table(name="cliente")public class Cliente { @Id @GeneratedValue private long id; private String nome; private String email;

public Cliente() { }

public Cliente(long id, String nome, String email) { this.id = id; this.nome = nome; this.email = email; }

public long getId() { return id; }

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

public String getNome() { return nome; }

public void setNome(String nome) { this.nome = nome; }

public String getEmail() { return email; }

public void setEmail(String email) { this.email = email; }

@Override public int hashCode() { int hash = 3; hash = 19 * hash + (int) (this.id ^ (this.id >>> 32)); return hash; }

@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Cliente other = (Cliente) obj; if (this.id != other.id) { return false; } return true; }

@Override public String toString() { return "Cliente{" + "id=" + id + ", nome=" + nome + ", email=" + email + '}'; } }Salve o arquivo.

Criar classe principalCrie agora a classe principal.

Segue o cdigo da classe principal para o CRUD completo.

import java.util.List;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import javax.persistence.Query;

public class Principal { public static void main(String[] args) { //Fbrica de Entidades EntityManagerFactory factory = Persistence.createEntityManagerFactory("MeuProjetoJPAPU"); //Gerenciador de Entidades EntityManager manager = factory.createEntityManager(); //Objeto Cliente Cliente c = new Cliente(); c.setNome("MeuNome"); c.setEmail("[email protected]"); //Iniciando transao com o banco de dados manager.getTransaction().begin(); //Persistindo objeto Cliente no banco de dados manager.persist(c); //Comitando a transao no banco de dados manager.getTransaction().commit(); //Fim da insero do objeto no banco //Alterando objeto e atualizando o banco de dados manager.getTransaction().begin(); c.setEmail("novoemail.com"); manager.merge(c); manager.getTransaction().commit(); //Fim da alterao //Removendo registro do banco de dados manager.getTransaction().begin(); manager.remove(c); manager.getTransaction().commit(); //Fim da remoo do cliente //Pesquisando um registro no banco de dados e imprimindo resultados Query q = manager.createQuery("SELECT c FROM Cliente c where c.nome like '%"+ "TEXTO DA PESQUISA AQUI" +"%'"); List clientes = q.getResultList();

for (Cliente c1 : clientes){ System.out.println("Cliente: " + c1.getId() + " - " + c1.getNome()); } //Fim da pesquisa //Fechando a fbrica de entidades manager.close(); factory.close(); }}