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
public boolean verificaCidade(String cidade) throws Exception {
boolean retorno = true;
String sql = "select nomeCidade from Cidade";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(retorno){
rs.next();
if(cidade.equals(rs.getString("nomeCidade"))){
retorno = false;
}
}
return retorno;
}
Desde já agradeço!
Amigo, o que você abriu tem de fechar. Senão vai ter problemas depois.
/** @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";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (!achou && rs.next()) {
if (cidade.equals (rs.getString ("nomeCidade"))) {
achou = true;
}
}
rs.close();
ps.close();
return achou;
}
Valeu amigo era isso mesmo, essa realmente foi de iniciante hehehe
Valeu pela ajuda, essa não vou esquecer
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;
}
[quote=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;
}
[/quote]
bem lembrado! valeu pela dica, pelo visto vou ter que estudar muito!!!