Ajuda com Tela de Login

Java

14/03/2014

Boa Tarde Pessoal,

Estou tentando fazer uma tela de login com Mysql, mas não funciona.
Não sei o que posso estar fazendo errado.

Aqui está minha classe LoginDAO.

public class LoginDAO {
     private Connection connection;  
     
     String nome;
     String senha;
     
     public LoginDAO(){
         this.connection = new ConnectionFactory().getConnection(); 
     }
    public void pesquisausuario(Login lo){
        String sql = "Select * from Login where nome = ? AND senha = ?";
        
          try {                                        
        PreparedStatement stmt = connection.prepareStatement(sql);   
        stmt.setString(1, lo.getNome()); 
        stmt.setString(2, lo.getSenha());

        stmt.execute();                         
        stmt.close();                         
    } catch (SQLException u) {                  
        throw new RuntimeException(u);        }
    }

  
    }


e Aqui meu botão de fazer Login:

 Login l = new Login();
      l.setNome(jTextField1.getText());
      l.setSenha(jTextField2.getText());
      
      LoginDAO dao = new LoginDAO();
        dao.pesquisausuario(l);
     
      if(jTextField1.getText().equals("nome") && (jTextField2.getText().equals("senha"))){
            frmPrincipal fr = new frmPrincipal();
            fr.setVisible(true);
            this.setVisible(false);
        }else{
              JOptionPane.showMessageDialog(null,"Login Incorreto, Tente Novamente!");
          }
       
    }                                        


O que está errado?

Muito Obrigado.
Marcio Morando

Marcio Morando

Curtidas 0

Respostas

Carlos Proença

Carlos Proença

14/03/2014

Fala marcio tudo bem??

Cara oq ta errado ai eh o retorno do sql.... tipo vc n pega ele e naõ trata no login....

a ideia eh q seu metodo de pesquisa retorne as informações do login e senha para vc comparar com o que vem da tela...

tenta ai qualquer coisa posto em codigo...

flww
GOSTEI 0
Marcio Morando

Marcio Morando

14/03/2014

Mas e como faço este retorno corretamente Carlos?

Obrigado.
GOSTEI 0
Fernando Silva

Fernando Silva

14/03/2014

Márcio,

Te aconselho fazer autenticação pela API JAAS, você não precisa fazer na munheca, a própria API autentica para você, é mais seguro.

Abaixo um tutorial.

www.guj.com.br/java.tutorial.artigo.184.1.guj

abs

GOSTEI 0
Marcio Morando

Marcio Morando

14/03/2014

Gostaria de resolver meu problema que citei anteriormente.

Mais tarde vou estudar esta API também. Obrigado pela dica.
GOSTEI 0
Carlos Proença

Carlos Proença

14/03/2014

Cara a ideia eh vc ao invez de usar um

stmt.execute(); usar um executeQuery(); e jogar isso em um ResultSet

depois percorrer com um laço os resultados no result set e preencher uma classe por exemplo....


List<Usuario> resultadoUsuarios = new arrayList<>();

ResultSet rs = stmt.executeQuery();

while(rs.next()){

   resultadoUsuarios.add(new Usuario(rs.getString("nome") , rs.getString("senha")  ));

}

return resultadoUsuario



fiz rapidao sem olhar muito mas é +- isso...

dai na tela vc pega as informações da classe usuario e assim consegue resolver seu problema....

se estiver com duvidas no JDBC da uma olhada ai

JDBC Devmedia

e tem video aulas no dev media e umas que eu gosto da Universidade XTI

universidade XTI


contudo eu tb recomendo que voce não use isso na mao... tem varias formas melhores de vc fazer isso....
como o nosso colega falou com o JAAS é uma otima opção com o spring security tb... etc

att
GOSTEI 0
POSTAR