CRIANDO UM DO GENERICO EM JPA ??
22/01/2013
0
package br.com.BestSoft.Util;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.swing.JOptionPane;
public class GenericDAO <T>{
AcessoFirebird config = new AcessoFirebird();
/*cria um gerenciador de entidades, a partir da fábrica de gerenciadores de entidade
Obs: não utilizar static, pois pode gerar problemas em relacionamentos Many-To-Many */
private EntityManager em = Persistence.createEntityManagerFactory("agendaJPAPU",config.getConf()).createEntityManager();
//Atributo do tipo classe utilizado no Java Reflection
private Class classe;
public GenericDAO(Class classe) {
//faz o atributo classe receber a classe da entidade, que deve ser passada no construtor
this.classe = classe;
}
//Método para inserir um registro no banco de dados a partir de um objeto
public void insert(T entidade){
em.getTransaction().begin();
em.persist(entidade);
em.getTransaction().commit();
}
//Método para atualizar um registro no banco de dados a partir de um objeto
public void update(T entidade){
em.getTransaction().begin();
em.merge(entidade);
em.getTransaction().commit();
}
//Método para obter um registro no banco de dados a partir de um id
public T get(int id){
return (T)em.find(classe, id);
}
//Método para remover um registro no banco de dados a partir de um id
public void remove(int id){
try{
T entidade = get(id);
if(entidade!=null){
em.getTransaction().begin();
em.remove(entidade);
em.getTransaction().commit();
}
}catch(Exception erro){
JOptionPane.showMessageDialog(null, erro.getCause());
}
}
public List<T> PesquisaNome(String nome){
return em.createQuery("SELECT e FROM " + classe.getSimpleName() + " e where upper(e.nome) like'"+nome.toUpperCase()+"'").getResultList();
}
//Retorna todos os registros no banco de dados da tabela equivalente a entidade passada por parâmetro
public List<T> list(){
return em.createQuery("SELECT e FROM " + classe.getSimpleName() + " e").getResultList();
}
}
Alex Silva.
Posts
22/01/2013
Alex Silva.
public class frmGravar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GenericDAO c = new GenericDAO(null);
Contato c1 = new Contato();
c1.setCodigo(3);
c1.setNome("MARIA SOARES DE ALMEIRA");
c1.setEmail("alex silva enzo@gmail.com");
c.insert(c1);
}
}
22/01/2013
Alex Silva.
public class frmExcuir {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GenericDAO gd = new GenericDAO(Contato.class);
gd.remove(1);
}
}
22/01/2013
Alex Silva.
public class frmAlterar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GenericDAO gd = new GenericDAO(Contato.class);
Contato c = new Contato(1);
c.setNome("Evilasio cavolcante");
c.setEmail("email@email");
gd.update(c);
}
}
22/01/2013
Alex Silva.
public class frmListar {
public static void main(String[] args) {
GenericDAO gd = new GenericDAO(Agenda.class);
System.out.println(gd.list());
List<Agenda> a = gd.list();
for(Agenda contato : a){
System.out.println(" Codigo "+contato.getCodigo()+" Nome "+contato.getNome());
}
}}
22/01/2013
Alex Silva.
public class frmPesquisaNome {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GenericDAO gd = new GenericDAO(Agenda.class);
List<Agenda> a = gd.PesquisaNome("%alexandre%");
for(Agenda contato : a){
System.out.println(" Codigo "+contato.getCodigo()+" Nome "+contato.getNome());
}
}
}
Clique aqui para fazer login e interagir na Comunidade :)