Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

resultSet em metodo de login

Boa noite, possuo um método que faz uma consulta no banco para verificar login, só que minha consulta e baseada no que o usuário digita, ou seja já tenho um whereque me trás o usuário correto e só valida senha.

minha classe:

package br.portalRadex.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import br.portalRadex.conexao.Conexao;
import br.portalRadex.modelo.Agentes;

public class AgentesDao {

    public Agentes login(String nome, String senha) throws ClassNotFoundException, SQLException {

        Connection con = new Conexao().getConnection();

        Agentes agente = new Agentes();

        PreparedStatement smt = con.prepareStatement(" select a.agn_in_codigo, " + " a.agn_st_nome, "
                + " a.agn_st_senha " + " from mgglo.glo_agentes a " + " where a.agn_st_nome = " + "'" + nome + "'");

        ResultSet resultSet = smt.executeQuery();

        while (resultSet.next()) {
            if (resultSet.getString("agn_st_senha").equals(senha)) {
                agente.setNome(resultSet.getString("agn_st_nome"));
                agente.setCodigo(resultSet.getInt("agn_in_codigo"));
                agente.setSenha(resultSet.getString("agn_st_senha"));

                return agente;

            }


        }

        con.close();
        smt.close();

        return null;

    }
}

O problema é, quando a pessoa digita qualquer outra coisa que não esteja já previamente cadastrada no banco, como posso tratar isso? ja tentei, if(resultSet == null), if(resultSet.equals(null)).

mas nada disso funciona, quando a consulta não retorna nada, o resultSet não seria null?

obrigado gente.

2 respostas
solução!

Oi Gabriel, tudo bem ?

Como ele sempre cria um novo objeto, ainda que vazio, ele nunca será nulo.

O que você pode fazer é validar o tamanho dele, ou seja quantas informações ele conseguiu trazer do banco. Existe um método dele que já faz isso :

getFetchSize ()

Ele retorna um inteiro com a quantidade de linhas, você pode verificar se é diferente de zero, caso seja, significa que tem resultado, caso contrário não.

Espero ter ajudado.

Abraços

Matheus muito obrigado resolvido!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software