Olá, gostaria de saber como posso criar uma DAO genérico para utilizar em meu projeto de estudo aqui em casa.
Olha um exemplinho ai :
public class DaoGenerico<Clazz> {
private Class<Clazz> persistentClass;
private Session session;
/**
* Construtor
*
* @param Class<Clazz> persistentClass
* @param Session session
*/
public DaoGenerico(Class<Clazz> persistentClass, Session session) {
this.persistentClass = persistentClass;
this.session = session;
}
/**
* Consulta uma Linha da Tabela Genérica usando get
*
* @param Serializable id
* @return Clazz
*/
@SuppressWarnings("unchecked")
public Clazz get(Serializable id) {
return (Clazz) session.get(persistentClass, id);
}
/**
* Consulta uma Linha da Tabela Genérica usando load
*
* @param Serializable id
* @return Clazz
*/
@SuppressWarnings("unchecked")
public Clazz load(Serializable id) {
return (Clazz) session.load(persistentClass, id);
}
/**
* Salva ou Atualiza Dados na Tabela Genérica
*
* @param Clazz
*/
public void saveOrUpdate(Clazz c) {
session.saveOrUpdate(c);
}
/**
* Deleta Dados na Tabela Genérica
*
* @param Clazz
*/
public void delete(Clazz c) {
session.delete(c);
}
/**
* Consulta Todas Linhas de uma Tabela Genérica em ordem crescente
*
* @return List<Clazz>
*/
public List<Clazz> listaAllIdCrescente() {
Criteria c = session.createCriteria(persistentClass);
c.addOrder(Order.asc("id"));
return c.list();
}
/**
* Consulta Todas Linhas de uma Tabela Genérica em ordem decrescente
*
* @return List<Clazz>
*/
public List<Clazz> listaAllIdDecrescente() {
Criteria c = session.createCriteria(persistentClass);
c.addOrder(Order.desc("id"));
return c.list();
}
/**
* Encerra a conexão da session
*/
public void close(){
this.session.close();
}
}
// e pra usar esse dao generico :
this.daoEspecifico = new DaoGenerico<Classe>(Classe.class,session);
voce vai usar hibernate ou jdbc?