tutorial jpa e hibernate
DESCRIPTION
Tutorial básico de JPATRANSCRIPT
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(); }}