CRIANDO UM DO GENERICO EM JPA ??

22/01/2013

0

SEBE A BAIXO A ANOTAÇÃO PRA CRIAR UM DÃOGENERICO EM JPA?

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.

Alex Silva.

Responder

Posts

22/01/2013

Alex Silva.

USANDO O DAOGENERICO PARA GRAVAR UM CONTATO NA AGENDA?


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);
}
}
Responder

22/01/2013

Alex Silva.

USANDO O DAOGENERICO PARA EXCLUIR DA AGENDA??

public class frmExcuir {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

GenericDAO gd = new GenericDAO(Contato.class);
gd.remove(1);


}

}
Responder

22/01/2013

Alex Silva.

USANDO O DAOGENERIC PAR FAZER UPDATE??

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);
}

}
Responder

22/01/2013

Alex Silva.

USANDO O DAOGENERIC PARA PREENCHER UMA LISTA??
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());

}

}}
Responder

22/01/2013

Alex Silva.

USANDO O DAOGENERIC PARA PESQUISAR UM NOME NA LISTA??

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());

}

}
}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar