Escolar Documentos
Profissional Documentos
Cultura Documentos
Fonte: https://imasters.com.br/back-end/criando-um-projeto-jee-usando-jpa-com-hibernate-jsf-e-mysql
Requisitos:
MySQL 5.0.x
TomCat 6
Hibernate
JSF 1.2
Iniciando
Na imagem a seguir você tem toda a estrutura do projeto. Observe que já criei as bibliotecas para o projeto e
estas foram adicionadas. Se não quiser adicionar as bibliotecas ao projeto, copie os .jars para a pasta lib e
pronto. Lembre-se de que ao adicionar uma biblioteca ao projeto, o Eclipse não copia os .jars para a pasta
lib. (ao contrário do netbeans!).
Não se esqueça também de criar um schema e uma table no MySQL, que aqui chamaremos de sistemas e
clientes respectivamente.
Monte uma estrutura conforme a imagem acima. Boa parte das explanações estão dentro do código, no
formato de comentário, lado a lado para facilitar a compreensão.
Desenvolvimento
O primeiro passo é criar o bean e fazer as devidas anotações.
Veja abaixo como está o nosso cliente bean:
package br.com.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="cliente") //caso o nome da tabela seja diferente informe aqui
public class Cliente {
@Column(name="nome")
private String nome;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
//anotação acima indica que o campo será gerado automaticamente pelo BD
@Column(name="id")
private int id;
@Column(name="sobrenome")
private String sobrenome;
@Column(name="cidade")
private String cidade;
public Cliente() {
// TODO Auto-generated constructor stub
}
Agora vamos partir para criar o nosso DAO; nele teremos a nossa fábrica de conexão. Poderíamos ter
métodos genéricos como salvar, deletar, atualizar etc., mas não vamos implementar todos.
package br.com.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
}
}
Agora vamos criar a classe que vai fazer a persistência com os dados do cliente. É a ClienteDAO.java,
que estende a classe DAO, para conseguirmos pegar um objeto objeto EntityManager que é responsável
pelas inclusões, exclusões e atualizações.
package br.com.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import br.com.bean.Cliente;
return q.getResultList();}
finally{
em.close();
}
}
}
Agora criaremos a classe ClienteController, que terá a responsabilidade de direcionar a comunicação do JSF,
pegar o que foi digitado no form e persistir.
package br.com.controller;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import br.com.bean.Cliente;
import br.com.dao.ClienteDAO;
public ClienteController() {
cliente = new Cliente();
}
Não esqueça que terá que criar um folder META-INF em JavaSource e colocar o persistence.xml neste
folder, não dentro do META-INF de WebContent. Alguns programadores acabam confundido e daí recebem
as velhas exceções…
Index.jsp
< jsp:forward page="cadastro.jsf" />
cadastro.jsp