Login em java

6 respostas
netbeansjdbcprogramaçãomysqljava
L

Eu fiz esse código para validação de login porém ele ta passando direto para o else

codigo do botão

if(campo_usuario.getText().equals("")&&campo_senha.getText().equals("")){

TelaPrincipal tela = new TelaPrincipal();

tela.setVisible(true);

dispose();

}else{

JOptionPane.showMessageDialog(null, Dados incorretos!);

}

verificar login

public boolean checkLogin(String email, String senha){

Connection con = Conexao.getConnection(); 
    PreparedStatement stmt = null;
    ResultSet rs = null;
    boolean check = false;
    
    
    try {
        stmt = con.prepareStatement("SELECT * FROM cadastro_user WHERE email = ?, and senha = ?");
        stmt.setString(1, email);
        stmt.setString(2, senha);
        rs = stmt.executeQuery();
        
        if (rs.next()){
            
          check = false;
           
        }
        
    } catch (SQLException ex) {
        //Logger.getLogger(UserDAO.class.getEmail()).log(Level.SEVERE, null, ex);
    }finally{
        Conexao.closeConnection(con, stmt, rs);
    }        
    return check;
    
}

6 Respostas

adriano_si

Fala @liam_alves . Seguinte, reveja com cuidado o seu IF. Eu quero mesmo lhe contar o que está errado, mas você mesmo revisar e descobrir é muito massa.

Então minha dica é que se você está preenchendo um valor de USUARIO e SENHA, que você olhe a condição da sua linha

if(campo_usuario.getText().equals("")&&campo_senha.getText().equals("")){

Você preencheu esses 2 campos? Se sim, a resposta pro seu problema está aí em cima. Se você também tem uma expectativa de que seu login irá validar os dados na base, tembém tem um outro problema, mas vamos acompanhando uma coisa de cada vez :wink:

lucas.sampaio

A tua instrução SQL tá errada. A vírgula depois de email=? não existe. O correto é:

SELECT id_user FROM cadastro_user WHERE email = ? AND senha = ?

Check tem que partir de false. Aí, se o usuario estiver cadastrado ele se torna true.

boolean check = false ;
if(rs.next()){
    check=true;
}
...

Ao invés de retornar boolean, retorna um objecto Usuario.

L

Tentei refazer como disse, mas continua não indo, sou novo no java grato!

UsuarioDAO dao = new UsuarioDAO();

if(dao.checkLogin(campo_usuario.getText(), campo_senha.getText())){

mas ainda não está passando

adriano_si

Bom, então agora tente fazer o que o @Megadeth lhe instruiu. Se não der certo, print o LOG aqui, que é a saída d texto que aparece no console quando você executa seu programa.

Abraços :wink:

L

Já consegui resolver, obrigado mesmo assim

adriano_si

Massa @liam_alves, compartilhe aí com o pessoal a solução, pois alguém com o mesmo problema que você pode está esperando a sua solução. :wink:

Criado 26 de maio de 2017
Ultima resposta 29 de mai. de 2017
Respostas 6
Participantes 3