Valor NULL onde não deveria estar

1 resposta
mirrah

bom gente, o método, o mesmo de um post meu anterior:

public static Professor loginProf(String matricula, String senha)
    {
        Professor prof = null;
        
        try
        {
            String sql = "SELECT * FROM professor WHERE matriculaProf = ? AND senha = ?;";
            
            Conexao conex = new Conexao("jdbc:mysql://localhost:3306/mydb",
                    "com.mysql.jdbc.Driver", "root", "alunolab");
            
            Connection con = conex.obterConexao();
            
            PreparedStatement comando = con.prepareStatement(sql);
            
            comando.setString(1, matricula);
            comando.setString(2, senha);
            
            ResultSet resultSet = comando.executeQuery();
            
            while(resultSet.next())
            {
                prof = new Professor(resultSet.getString("matriculaProf"),
                        resultSet.getString("senha"));
            }
            
            resultSet.close();
            comando.close();
            con.close();
            
        }catch ( Exception e)
        {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        
        prof = new Professor(matricula, senha);
        return prof;
    }
quando chamo ele assim:
Professor prof = ProfessorDAO.loginProf(matricula, senha);
Depois eu tento recuperar a senha:
JOptionPane.showMessageDialog(null, "sua senha é: "+ prof.getSenha());

O "prof.getSenha()" me retorna um valor nulo.

Será que eu estou fazendo algo de errado? Alguém pode me ajudar, mais uma vez hoje? hehehehe

Abraços a todos :)

1 Resposta

Jhoniboni

O problema com o seu código está na linha 37 (do seu método), onde você utiliza os parâmetros que passou para a função para criar o objeto que será retornado, ou seja, todo o seu código está fazendo apenas isso:

public static Professor loginProf(String matricula, String senha) { Professor prof = null; prof = new Professor(matricula, senha); // esta linha return prof; }
Como provavelmente você está passando um valor nulo, ele está te retornando um objeto com uma propriedade (senha) nula.
Retire essa linha do seu método e ele irá trazer o valor do banco, seja ele nulo ou não.

Criado 16 de julho de 2011
Ultima resposta 16 de jul. de 2011
Respostas 1
Participantes 2