Problemas com Login pegando usuario e senha do MySQL

5 respostas
M

Boa noite amigos, tudo certo? Então, eu estou implementando um sistema de login para um trabalho da faculdade em que o sistema deve procurar no MySQL se há o cadastro digitado, caso esteja ele abre uma nova janela, se não estiver da o aviso do erro.

Aqui vai a chamada do metodo quando clico em conectar:
private void jButConActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String login = (jTextID.getText());
        String senha = (jPasswordField1.getText());
        AcessoDAO dao = null;
        try {
            dao = new AcessoDAO();
        } catch (SQLException ex) {
            Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            if (dao.testaLogin(login,senha)==true){
            Inicio in = new Inicio();
            in.setVisible(true);
            setVisible(false);
            }
            else {
                JOptionPane.showMessageDialog(null,"Usuário ou Senha invalido!");
            }
        } catch (SQLException ex) {
            Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
        }
       
    }

aqui vai o metodo chamado:

public boolean testaLogin(String nome, String senha) throws SQLException{
       String sql = "select nome,senha from bdfunc where nome =  '"+nome+"'  AND senha =  '"+senha+"'";
       PreparedStatement stmt = this.conexao.prepareStatement(sql);
        ResultSet rs = null;
        try {
            rs = stmt.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        while(rs.next()){
            if(nome.equalsIgnoreCase(rs.getString("nome")) && senha.equalsIgnoreCase(rs.getString("senha"))) { 
                return true;
            }
           
            else{
                return false;
            }
        }
        stmt.execute();
        stmt.close();
    }

Há dois problemas nesse caso, não estou conseguindo fazer o retorno se é falso ou verdadeiro, e não estou conseguindo fazer a verificação dos mesmos no if do botão conectar.

Obrigado pela atenção, espero a ajuda de todos :D

5 Respostas

J

public boolean testaLogin(String nome, String senha) throws SQLException{ String sql = "select nome,senha from bdfunc where nome = '"+nome+"' AND senha = '"+senha+"'"; PreparedStatement stmt = this.conexao.prepareStatement(sql); ResultSet rs = null; try { rs = stmt.executeQuery(); stmt.execute(); stmt.close(); while(rs.next()){ if(nome.equalsIgnoreCase(rs.getString("nome")) && senha.equalsIgnoreCase(rs.getString("senha"))) { return true; } } return false; } catch (SQLException ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } }
velho teu problema nessa parte era q tu tentava fazer algo no método depois de ter dado um return no método e isso o Java não permite
e qual era tu outra duvida q naum entendi??

M

Cara, mas se esta dentro de um if eu não tenho que dar duas opções de retorno? se ele acha o login e senha return true, se não acha, return false…

J

mas tah send feito isso só q de outra forma

J

e tbm tah tratando qndo a consulta naum retorna nenhum registro oq pode vir a ocorrer

J

e no Exception eu esqueci tem q colocar return false tbm

Criado 1 de maio de 2012
Ultima resposta 1 de mai. de 2012
Respostas 5
Participantes 2