Problema com método de verificar Login

8 respostas
re_erick

Boa tarde galera..
To com um problema aqui com um metodo que criei para verificar se existe o novo login EXISTE no banco...
Mas quando chamo ele dentro do actionPerformed existindo o login no banco ou não ele lança que ja existe o login..
ou seja se o login digitado no textfild para o novo cadastro existindo ou não no banco ele lança a excecção, será por que??
vo postar os métodos referentes a essa parte!!

MÉTODO DAO
public List<Usuario> lista() throws SQLException{

        Connection conn = Conexao.getConexao();
        String sql = "Select login From usuario order by login ";
        PreparedStatement stmt = conn.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();

        List<Usuario> minhaLista = new ArrayList<Usuario>();

        while(rs.next())
        {
            Usuario usuario = new Usuario(rs.getString("login"));

            minhaLista.add(usuario);
        }
        rs.close();
        stmt.close();
        return minhaLista;

    }
MÉTODO QUE VERIFICA E RETORNA
private boolean verificaLogin(String login) throws SQLException
    {
        boolean result = false;
        UsuarioDAO dao = new UsuarioDAO();
        List<Usuario> lista = dao.lista();
        

        for(Usuario usuario : lista)
        {
            if(login.equals(usuario.getLogin()));
            result = true;
            break;
        }
        return result;
    }
BOTÃO CADASTRAR
private void bt_cadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                             

          if(evt.getSource() == bt_cadastrar )
          {
             UsuarioDAO dao = new UsuarioDAO();
             String senha = tf_senha.getText();
              String confirma = tf_confirma.getText();
              String nivel = cb_acesso.getSelectedItem().toString();
              boolean valor = this.capturaStatus(cb_status.getSelectedItem().toString());
              
              if(this.verificarLogin(tf_login.getText())
             {
                JOptionPane.showMessageDialog(null, "Já existe um login com esse usuário"); // A VERIFICAÇÃO SENDO VERDADEIRA OU NÃO ESSA EXCEÇÃO É LANÇADA!!! :(
             }else
              if (tf_nome.getText().equals("")) {
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos");
                } else if (tf_login.getText().equals("")) {
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos");
                } else if (tf_senha.getText().equals("")) {
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos");
                } else if (tf_confirma.getText().equals("")) {
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos");
                } else if (!senha.equals(confirma)) {
                    JOptionPane.showMessageDialog(null, "Confirmaçao de senha invalida");
                    tf_senha.setText("");
                    tf_confirma.setText("");
                } else {
                    Usuario usuario = new Usuario(tf_nome.getText(), tf_login.getText(), senha, tf_data.getText(), nivel, valor);
                    try {
                        dao.cadastrarUsuario(usuario);
                        JOptionPane.showMessageDialog(null, "Cadastrado com Sucesso!");
                        this.limparCampos();
                    } catch (SQLException ex) {
                        Logger.getLogger(CadastroVendedor.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
         }
    }

8 Respostas

Eder_Peixoto

Olá Erick,

Que exception está sendo disparada? Mostre o trace pra ficar melhor de ajudar. Já colocou alguns print pra tentar descobrir?

re_erick

Seguinte, tenho um método que verifica se já existe um login no banco com o nome digitado no textfild durante o cadastro, caso existe o métod retorna true, caso não existe o método retorna false,

Dentro do botão cadastrarLogin eu chamei o método da seguint forma

if(this.verificarLogin(tf_login.getText()) { JOptionPane.showMessageDialog(null, "Já existe um login com esse usuário"); // A VERIFICAÇÃO SENDO VERDADEIRA OU NÃO ESSA EXCEÇÃO É LANÇADA!!! :( , mas existindo o usuário ou não ele lança essa mensagem ai acima… a dúvida é, por que ele lança a mensagem sendo que que a com a condição sendo verdadeira ou não.
Estou usando o netbeans 6.9.1
na versão 6.8 funciona.

Entendeu agora?

Eder_Peixoto

Os métodos verificaLogin e verificarLogin são os mesmos?

re_erick

Sim são os mesmos, é por que eu digitei aqui no forum errado, mas é a mesma coisa.

Eder_Peixoto

É porque seu método verificaLogin sempre está executando o seguinte ponto:

result = true;

Isso se deve porque você colocou um “;” ao término do if.

if(login.equals(usuario.getLogin()));
re_erick

Valeu mano!
deu certo, e adicionei umas chaves, veja como ficou

if(login.equals(usuario.getLogin())){ result = true; break; }

A

Ou de return true; dentro do for

pmlm

Para que obter todos os users da BD quando queres apenas validar se existe um?

Criado 28 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 8
Participantes 4