[Resolvido]O nome da coluna não foi encontrado neste resultset

Estou querendo realizar a validação e autenticação de um usuário já cadastrado no sistema e pegar o nome do usuario, quero que ao digitar nos campos de login e senha na minha pagina jsp,fazer a validação das informações se estão digitadas corretamente caso esteja erradas ele mostra em uma label na pagina de login, a seguinte mensagem “Login ou senha incorretos” ou se os campos estiverem nulos ele mostra na pagina “Por favor preencha os campos de login ou senha”.

Criei uma classe DAO em que faz a consulta SQL, mas apresenta seguinte erro O nome da coluna cli_login não foi encontrado neste resultset

ClienteDAO

 public Cliente validacaoLogin(String login,String senha){
     Cliente  cli = new Cliente();
    try {
        con = Conecta.conexao();
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(ClienteDAO.class.getName()).log(Level.SEVERE, null, ex);
    }

 
String sql="Select cli_nome  from tb_cliente where cli_login= '" + login + "' and cli_senha= '" + senha + "'";

    try {
        pst = con.prepareStatement(sql);
           rs= pst.executeQuery();
           
        while(rs.next()){
            
              cli.setLogin(rs.getString("cli_login"));
              cli.setSenha(rs.getString("cli_senha"));
            
        
          cli.setNome(rs.getString("cli_nome"));
        
        }
        
        return cli;
    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null,e);
        return null;
    }

} 

Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
   // processRequest(request, response);
   String vazio="Por favor preencha os campos de login ou senha"; 
   String incorretos="Login ou senha incorretos"; 
   
    String login = request.getParameter("login");
      String senha = request.getParameter("senha");
      
        Cliente cli= new Cliente();
           LoginDAO login2= new  LoginDAO();
       // cli.setLogin(login);
        //cli.setSenha(senha);
        
     
  Cliente login_validacao=login2.validacaoLogin(login,senha);
         
  request.setAttribute("validacao_login", login_validacao); 

  if(cli.getLogin()==null && cli.getSenha()==null){
  request.setAttribute("vazio", vazio); 

 }
 else if(login_validacao.equals(request.getParameter("login")) & login_validacao.equals(request.getParameter("senha")) ){
  
 RequestDispatcher rd=request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
 }
 else{
request.setAttribute("incorreto", incorretos); 
     }
    
}

Pagina JSP

<html>
<head>
 <script type="text/javascript">
        
       function login(){

           $.ajax({  
type: "POST",  
url: "Login",  
data: {
    login: $("input[id=login]").val(),
    senha: $("input[id=senha]").val(),
    
   
},


success: function(result){   
  $('#teste').html(result);
  
},
 error:function(){
            alert("ERRO");
        },
     });
           
       } 
        
        
    </script>
</head>
 <body>
 
 <div class="login-form">
        
    <div class="row">
    <div class="col-6 col-md-4"></div>
     <div class="col-6 col-md-4">
     <h2 id="AcesseConta"><span>Acesse sua Conta</span></h2>
     <label for="vazio_resposta">${vazio.vazio}</label>
      <label for="validacao">${incorreto.incorretos}</label>
     </div>
    </div>
    
    <div class="row">
     <div class="col-6 col-md-4"></div>   
         <div class="col-6 col-md-4">
     Login:<input type="text" id="login" name="login" ><br/><br/>
     Senha:<input type="text" id="senha" name="senha" ><br/>
     <a href="">Não é cadastrado?Cadastre-se</a><br/><br/>
     </div>
        
    </div>
    
   
    
    <div class="row">
     <div class="col-6 col-md-4"></div>   
         <div class="col-6 col-md-4">
              <div id="teste"></div>  
     <button type="button" onclick="login()" >Entrar</button>  <button type="button" onclick="" >Esqueceu a Senha?</button> 
     </div>
        
    </div>
     </div>

</body>

Você está fazendo select somente do cli_nome, aí não tem como obter o valor das outras colunas.

1 curtida

nossa verdade, coloquei as colunas restantes no select e funcionou