terça-feira, 22 de novembro de 2011

Login Hibernate JAVA DAO

Vou postar uma Classe que Serve como base para muitos aprenderem a fazer consulta no banco de dados
usando Hibernate

tudo comentado

Usuario


package objetos;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.GeneratedValue;
import javax.persistence.SequenceGenerator;
import javax.persistence.GenerationType;
import java.util.Date;

@Entity
@SequenceGenerator(name = "Usuario_SEQ", sequenceName = "Usuario_SEQ")
@Table(name = "Usuario")
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "Usuario_SEQ")
@Column(name = "CODIGO")
private Integer codigo;
@Column(name = "login")
private String login;
@Column(name = "senha")
private String senha;
@Column(name = "bloqueado")
private Boolean bloqueado;
@Column(name = "CANCELADO")
private String cancelado;
@Column(name = "CAUSA_CANCEL")
private String causaCancel;
@Column(name = "DATA_ATUALIZACAO")
private Date dataAtualizacao;
@Column(name = "DATA_EXCLUSAO")
private Date dataExcluir;
@Column(name = "DATA_CADASTRO")
private Date dataCadastro;

//getters and setters
}


UsuarioDAO


package dao;

import objetos.Usuario;
import gerador.dao.Dao;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import gerador.util.HibernateUtil;
import java.util.List;

//Classe extende do dao generico
//sendo assim, obtem todos os atributos e metodos da classe pai
//que no caso é o dao
public class UsuarioDAO extends Dao<Usuario> {
// abaixo é o construtor do Usuariodao
public UsuarioDAO() {
// o super funciona como construtor da classe pai
// se observar no Dao.java existe um construtor que espera um .class
// então passamos a classe que queremos manipular
//
super(Usuario.class);
}

// metodo que é chamado nas telas
// retorna uma lista, e esse metodo recebe uma string para fazer uma
// consulta melhor
@SuppressWarnings("unchecked")
public List<Usuario> selecionaUsuario(String texto) throws Exception {
// abaixo ele abre uma sessão com o banco de dados
Session session = null;
try {
// abaixo ele pega a sessão na classe HibernateUtil
session = HibernateUtil.getSession();
// a classe criteria é para refinar as consultar
// fazer um filtro melhor
Criteria criteria = session.createCriteria(Usuario.class);
// pega o texto e separa por espaço
String te[] = texto.split(" ");
// faz um for do tanto de palavras que existem separas por espaço
// exemplo (faculdade fema) existes duas palavras separas por espaço
for (int i = 0; i < te.length; i++) {
// em baixo o filtro sql é realizado
criteria
.add(org.hibernate.criterion.Restrictions
.sqlRestriction("this_.CANCELADO = 'N' and (this_.CODIGO like '%"
+ te[i]
+ "%' or this_.login like '%"
+ te[i]
+ "%' or this_.senha like '%"
+ te[i] + "%') "));
}
// a ordem em que será ordenado
criteria.addOrder(Order.desc("codigo"));
// retorna a lista
return criteria.list();
} catch (Exception e) {
System.out.println(e);
throw e;
} finally {
// fecha a sessão
if (session != null && session.isOpen()) {
session.close();
}
}
}

@SuppressWarnings("unchecked")
// mesmo padrão do metodo acima
public List<Usuario> buscaSimples(String texto) throws Exception {
Session session = null;
try {
session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Usuario.class);
String te[] = texto.split(" ");
for (int i = 0; i < te.length; i++) {
criteria
.add(org.hibernate.criterion.Restrictions
.sqlRestriction("this_.CANCELADO = 'N' and (this_.login like '%"
+ te[i] + "%') "));
}
criteria.addOrder(Order.desc("codigo"));
return criteria.list();
} catch (Exception e) {
System.out.println(e);
throw e;
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}

public Usuario buscaLogin(String usuario, String senha) throws Exception {
Session session = null;
try {
session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Usuario.class);
criteria.add(org.hibernate.criterion.Restrictions.eq("login",
usuario));
criteria.add(org.hibernate.criterion.Restrictions
.eq("senha", senha));
return (Usuario) criteria.list().get(0);
} catch (Exception e) {
System.out.println(e);
throw e;
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
}

Nenhum comentário:

Postar um comentário