Pra minha aplicação ficar completa pra quem puder testar segue as classes hibernate e DAO ( dao na verdade é o nome da minha classe q é uma session factory e hibernate é o nome da minha classe que faz o função de dao ainda vou arrumar isso mas por enquanto tudo bem…
Casse hibernate (faz o papel de DAO):
package br.com.sistaxi.hibernate;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import br.com.sistaxi.beans.Usuario;
public class Hibernate {
private Session session;
private String mensagem;
Dao dao = new Dao();
public String salva(Object objeto) {
try {
session = dao.abreSessao(objeto);
session.save(objeto);
dao.fechaSessao(session);
return "Informação salva com sucesso!";
} catch (Exception e) {
mensagem = "Erro: " + e;
return mensagem;
}
}
public boolean validaLogin(Usuario usuario) {
session = dao.abreSessao(usuario);
Criteria select = session.createCriteria(usuario.getClass());
select.add(Restrictions.eq("login", usuario.getLogin()));
select.add(Restrictions.eq("senha", usuario.getSenha()));
select.add(Restrictions.eq("situacao", "ativo"));
if (select.list().isEmpty()) {
dao.fechaSessao(session);
return false;
} else {
dao.fechaSessao(session);
return true;
}
}
@SuppressWarnings("unchecked")
public ArrayList<Usuario> listaUsuario(Usuario usuario) {
session = dao.abreSessao(usuario);
List<Usuario> lista = new ArrayList<Usuario>();
lista = session.createCriteria(Usuario.class).list();
// dao.fechaSessao(session);
return (ArrayList<Usuario>) lista;
}
public Usuario getById(int id) {
Usuario usuario = new Usuario();
session = dao.abreSessao(usuario);
usuario = (Usuario) session.get(Usuario.class, id);
dao.fechaSessao(session);
return usuario;
}
public Usuario getUsuarioByLoginSenha(Usuario usuario) {
session = dao.abreSessao(usuario);
Criteria select = session.createCriteria(usuario.getClass());
select.add(Restrictions.eq("login", usuario.getLogin()));
select.add(Restrictions.eq("senha", usuario.getSenha()));
dao.fechaSessao(session);
return usuario;
}
}
Classe Dao (faz o papel de session factory):
package br.com.sistaxi.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.sistaxi.beans.PerfilUsuario;
import br.com.sistaxi.beans.Usuario;
public class Dao {
public Session abreSessao(Object objeto) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
//cfg.addAnnotatedClass(objeto.getClass());
cfg.addAnnotatedClass(PerfilUsuario.class);
cfg.addAnnotatedClass(Usuario.class);
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
return session;
}
public void fechaSessao(Session session) {
session.getTransaction().commit();
session.close();
}
}
hibernate.properties (não uso xml)
# hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect
hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost/sistaxi
hibernate.connection.username = root
hibernate.connection.password =1234
hibernate.show_sql = true
hibernate.format_sql = true