lvffilho
package persistencia;
import java.util.List;
import org.hibernate.*;
import org.hibernate.cfg.AnnotationConfiguration;
public class DAO {
private SessionFactory sfSessao;
public DAO() {
try {
if (sfSessao == null) {
sfSessao = new AnnotationConfiguration().configure().buildSessionFactory();
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
public boolean inserir(Object objeto) {
Session sessao = sfSessao.openSession();
Transaction trx = sessao.beginTransaction();
boolean flag = false;
try {
sessao.save(objeto);
sessao.flush();
trx.commit();
flag = true;
} catch(Exception ex) {
ex.printStackTrace();
trx.rollback();
flag = false;
} finally {
sessao.close();
return flag;
}
}
public boolean alterar(Object objeto) {
Session sessao = sfSessao.openSession();
Transaction trx = sessao.beginTransaction();
boolean flag = false;
try {
sessao.saveOrUpdate(objeto);
sessao.flush();
trx.commit();
flag = true;
} catch(Exception ex) {
ex.printStackTrace();
trx.rollback();
flag = false;
} finally {
sessao.close();
return flag;
}
}
public boolean excluir(Object objeto) {
Session sessao = sfSessao.openSession();
Transaction trx = sessao.beginTransaction();
boolean flag = false;
try {
sessao.delete(objeto);
sessao.flush();
trx.commit();
flag = true;
} catch(Exception ex) {
ex.printStackTrace();
trx.rollback();
flag = false;
} finally {
sessao.close();
return flag;
}
}
public List buscar(String sql) {
Session sessao = sfSessao.openSession();
Transaction trx = sessao.beginTransaction();
List lista = null;
try {
System.out.print(sql);
Query qr = sessao.createQuery(sql);
sessao.flush();
trx.commit();
lista = qr.list();
} catch(Exception ex) {
ex.printStackTrace();
trx.rollback();
} finally {
sessao.close();
return lista;
}
}
public int getChavePrimaria(String tabela) {
int id = 1;
String resultado = null;
String query = tabela + ".ChavePrimaria";
Session session = sfSessao.openSession();
Transaction trx = session.beginTransaction();
Query q = session.getNamedQuery(query);
Object o = q.uniqueResult();
if(o == null)
resultado = "0";
else
resultado = o.toString();
id += Integer.parseInt(resultado);
trx.commit();
return id;
}
public List buscarQuery(String nomeQuery) {
Session session = sfSessao.openSession();
Transaction trx = session.beginTransaction();
Query q = session.getNamedQuery(nomeQuery);
List lista = q.list();
session.flush();
trx.commit();
session.close();
return lista;
}
public Object buscarUnico(String nomeQuery, String parametrosQuery, String valoresParametros){
Session session = sfSessao.openSession();
Transaction trx = session.beginTransaction();
Query q = session.getNamedQuery(nomeQuery);
String parametros = parametrosQuery + ";";
String valores = valoresParametros + ";";
while(parametros.indexOf(";") > 0) {
String p = parametros.substring(0,parametros.indexOf(";"));
String v = valores.substring(0,valores.indexOf(";"));
parametros = parametros.substring(parametros.indexOf(";") + 1);
valores = valores.substring(valores.indexOf(";") + 1);
q.setString(p, v);
}
Object resultado = q.uniqueResult();
trx.commit();
return resultado;
}
public List buscarQuery(String nomeQuery, String parametrosQuery, String valoresParametros){
Session session = sfSessao.openSession();
Transaction trx = session.beginTransaction();
Query q = session.getNamedQuery(nomeQuery);
String parametros = parametrosQuery + ";";
String valores = valoresParametros + ";";
while(parametros.indexOf(";") > 0) {
String p = parametros.substring(0,parametros.indexOf(";"));
String v = valores.substring(0,valores.indexOf(";"));
parametros = parametros.substring(parametros.indexOf(";") + 1);
valores = valores.substring(valores.indexOf(";") + 1);
q.setString(p, v);
}
List lista = q.list();
trx.commit();
return lista;
}
public int getInt(String nomeQuery) {
int inteiro = 0;
String resultado = null;
Session session = sfSessao.openSession();
Transaction trx = session.beginTransaction();
Query q = session.getNamedQuery(nomeQuery);
Object o = q.uniqueResult();
if(o == null)
resultado = "0";
else
resultado = o.toString();
inteiro += Integer.parseInt(resultado);
trx.commit();
return inteiro;
}
}
espero que ajude… vlw 
Titosca
vlw, deu uma ideia legal sim!
agora um dúvida, estou vendo vários exemplos de implementação do JPA utilizando o hibernate!
mas eu estou utilizando a implementação padrão da API! Tem alguma vantagem em utilizar o hibernate??
Uma dúvida meu netbeans não mostra o javadoc das classes EntityManagerFactory e etc pq será??
Queria um help sobre alguns metodos da Classe mas não aparece no help…