Ajuda - validar usuario

2 respostas
leo.mendes

Pessoal,alguem poder dar uma dica porquê quando eu informo usuario errado ele não me manda a mensagem de erro de login?
Valeu!!

package Dados;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author leonardo
 */
public class UsuarioControl {

    String autenticaUser = "select * from usuario where usuario like ? and senha like ?";
    AcessoMySql acbd = new AcessoMySql();
    PreparedStatement pstm;
    ResultSet rs;


    public   List<Usuario> autenticaUsuario(String usuario,String senha){
    List<Usuario> users =new ArrayList();

        try {
            pstm = acbd.conectar().prepareStatement(autenticaUser);
            pstm.setString(1, usuario);
            pstm.setString(2, senha);
            rs = pstm.executeQuery();

                        Usuario u ;
                        while(rs.next()){
                        u = new Usuario();
                        u.setUsuario(rs.getString("usuario"));
                        u.setSenha(rs.getString("senha"));
                        users.add(u);
                        System.out.println(u.getUsuario());
                        System.out.println(u.getSenha());


                         if(usuario.equalsIgnoreCase(u.getUsuario())){
                            System.out.println("logado!");
                        }else{
                            System.out.println("invalido");
                        }
                        
                   }

                       
            
        acbd.desconectar();


        } catch (SQLException ex) {
            
            ex.getMessage();
            Logger.getLogger(UsuarioControl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return users;
       
            
        }

}

2 Respostas

Lucas_Bellin

eae cara…

eu faria diferente essa sua validação, começando pelo sql, onde deixaria:

select * from usuario where usuario = ? and senha = ?

no momento que você faz o while, trocaria por if, pois se ele encontrar um usuário com as informações passadas, ou seja, somente um usuário poderá corresponder ao login e senha, então ele entrará no if ( rs.next() ). Só neste caso então ele poderia criar o objeto Usuario (new Usuario()) e retornar o mesmo.

Ai fora disso você verifica se este objeto é null (usuário não foi encontrado) ou não (usuário foi encontrado) e exibe as mensagens ou ações de acordo.

leo.mendes

Lucas Bellin:
eae cara…

eu faria diferente essa sua validação, começando pelo sql, onde deixaria:

select * from usuario where usuario = ? and senha = ?

no momento que você faz o while, trocaria por if, pois se ele encontrar um usuário com as informações passadas, ou seja, somente um usuário poderá corresponder ao login e senha, então ele entrará no if ( rs.next() ). Só neste caso então ele poderia criar o objeto Usuario (new Usuario()) e retornar o mesmo.

Ai fora disso você verifica se este objeto é null (usuário não foi encontrado) ou não (usuário foi encontrado) e exibe as mensagens ou ações de acordo.

Brigadão cara…funcionou com o if que vc falou e percebi tambe´m que estava fazendo a verificação na ordem errada!!
Valeu mesmo!
Abs!

Criado 12 de novembro de 2009
Ultima resposta 12 de nov. de 2009
Respostas 2
Participantes 2