Olá!
O método abaixo está retornando uma lista vazia, quando deveria retornar um ou mais itens.
Testei o comando no banco e está funcionando.
DAO
public List<Endereco> pesquisaEnderecos(int idUsuario) {
List<Endereco> lista = new ArrayList<Endereco>();
String sql = "SELECT * FROM Endereco WHERE idUsuario=?";
try {
con.setAutoCommit(false);
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, idUsuario);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Endereco endereco = new Endereco();
endereco.setIdEndereco(rs.getInt(1));
endereco.setRua(rs.getString(2));
endereco.setCep(rs.getInt(3));
endereco.setCidade(rs.getString(4));
endereco.setPais(rs.getString(5));
endereco.setNumero(rs.getInt(6));
endereco.setComplemento(rs.getString(7));
endereco.setBairro(rs.getString(8));
endereco.setIdUsuario(rs.getInt(9));
lista.add(endereco);
}
con.commit();
rs.close();
stmt.close();
return lista;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
No jsp:
try {
List <Endereco> lista = new ArrayList <Endereco>();
EnderecoBean edbean = new EnderecoBean();
int idUsuario = (Integer.parseInt(session.getAttribute("idUsuario").toString()));
lista = edbean.pesquisaEnderecos( idUsuario);
if (lista != null) {
Iterator iterator = lista.iterator();
while (iterator.hasNext()) {
out.println("aqui");
Endereco endereco = (Endereco) iterator.next();
// preenche tabela ..
}
}
} catch (Exception e) {
out.println(e);
}
Passei um tempinho tentando resouver isso, pesquisei em algumas postagens, mas aparentimento está tudo certo…
Desde já obrigada.