Erro verificaUser();

3 respostas
C
public boolean verificaUser (Usuario usuario) throws SQLException {
        try {
          con = Conexao.getConexao();    
          String SQL = "SELECT * FROM  usuario WHERE NomeUsuario=?";
          PreparedStatement stmt = this.con.prepareStatement(SQL);
          ResultSet rs = stmt.executeQuery();
          while(rs.next()) {
             String nome = rs.getString("NomeUsuario");
             String senha = rs.getString("SenhaUsuario");
             if (usuario.getNomeUsuario().equals(nome) && usuario.getSenhaUsuario().equals(senha)) {
                 stmt.close();
                 rs.close();
                 return true;
             } 
             stmt.close();
             rs.close();
          }
        }  
        catch(SQLException ex) { 
         ex.printStackTrace();
        }
    }

dá um erro: return missin statement na última linha.
se alguém pudesse me dar uma dica do q é, ficarei grato

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:
[size=“11”][color=“red”]* Editado: Movido para o fórum Java Básico (Iniciantes) - Jair Elton[/color][/size] :joia:

3 Respostas

J

Está faltando um return no seu método, caso ele não entre no if não haverá um return para executar.

Coloque um return false; na ultima linha.

C

vlw moderador !!!

D
con = Conexao.getConexao();    
          String SQL = "SELECT * FROM  usuario WHERE NomeUsuario=?"; 
          PreparedStatement stmt = this.con.prepareStatement(SQL); 
          ResultSet rs = stmt.executeQuery();

Não tá faltando colocar o valor do “?” na query?

con = Conexao.getConexao();    
          String SQL = "SELECT * FROM  usuario WHERE NomeUsuario=?"; 
          PreparedStatement stmt = this.con.prepareStatement(SQL); 
          [b]stmt.setString(1, "João");[/b]
          ResultSet rs = stmt.executeQuery();

Com essa linha, a query que será executada retornará os valores cujo o nomeUsuario seja João.
Com o método setString do PreparedStatement você, no primeiro argumento diz a posição da interrogação (1 no caso), no segundo diz o valor que ela irá assumir.
Lembrando que existe ainda os métodos setInt, setDouble … para inteiros, doubles e etc.[/b][/quote]

Criado 5 de março de 2007
Ultima resposta 5 de mar. de 2007
Respostas 3
Participantes 3