Boa tarde pessoal, estou iniciando em banco de dados agora, e tenho um problema que acho que será simples para a maioria de vocês,
mas que não consegui uma solução
A questão é que estou fazendo uma consulta SQL para verificar se existe uma determinada cidade ja cadastrada
Mas quando executo a consulta acontece o seguinte erro: java.sql.SQLException: After end of result set
Será que alguem pode me dar um help!
Vou postar o código
publicbooleanverificaCidade(Stringcidade)throwsException{
booleanretorno=true;Stringsql="select nomeCidade from Cidade";PreparedStatementps=conn.prepareStatement(sql);ResultSetrs=ps.executeQuery();while(retorno){
rs.next();if(cidade.equals(rs.getString("nomeCidade"))){
retorno=false;}
}
returnretorno;
}
Amigo, o que você abriu tem de fechar. Senão vai ter problemas depois.
/**@returntrueseacharacidade,falsesenãoachar.*/publicbooleanverificaCidade(Stringcidade)throwsException{booleanachou=false;Stringsql="select nomeCidade from Cidade";PreparedStatementps=conn.prepareStatement(sql);ResultSetrs=ps.executeQuery();while(!achou&&rs.next()){if(cidade.equals(rs.getString("nomeCidade"))){achou=true;}}rs.close();ps.close();returnachou;}
R
Renato.salu
Valeu amigo era isso mesmo, essa realmente foi de iniciante hehehe
Valeu pela ajuda, essa não vou esquecer
E
entanglement
Amigo, você não precisaria ter feito esse “while”. Na verdade, o mais correto é tratar essa condição no SQL:
/**@returntrueseacharacidade,falsesenãoachar.*/publicbooleanverificaCidade(Stringcidade)throwsException{booleanachou=false;Stringsql="SELECT nomeCidade FROM Cidade WHERE nomeCidade = ?";PreparedStatementps=conn.prepareStatement(sql);ps.setString(1,cidade);if(rs.next()){achou=true;}rs.close();ps.close();returnachou;}
R
Renato.salu
entanglement:
Amigo, você não precisaria ter feito esse “while”. Na verdade, o mais correto é tratar essa condição no SQL:
/** @return true se achar a cidade, false se não achar. */
public boolean verificaCidade(String cidade) throws Exception {
boolean achou = false;
String sql = "SELECT nomeCidade FROM Cidade WHERE nomeCidade = ?";
PreparedStatement ps = conn.prepareStatement (sql);
ps.setString (1, cidade);
if (rs.next()) {
achou = true;
}
rs.close();
ps.close();
return achou;
}
bem lembrado! valeu pela dica, pelo visto vou ter que estudar muito!!!