public List<Email> getEmailPorParametro(int pessoaId, int emailId)throws Exception {
Connection conn = null;
ResultSet rs = null;
String sql = BUSCA_POR_PARAMETRO;
List<Email> listaEmail = new ArrayList<Email>();
try {
conn = GerenciadorConexao.getConexao();
CallableStatement clblStmt = conn.prepareCall(sql);
clblStmt.setInt(1,pessoaId);
clblStmt.setInt(2,emailId);
rs = clblStmt.executeQuery();
while (rs.next()) {
Email email = new Email();
email.setId(rs.getInt("EmailID"));
email.setDescr(rs.getString("EmailDescr"));
email.setTipoId(email.getTipoId().getContatoTipoPorId(rs.getString("EmailContatoTipoID")));
listaEmail.add(email);
}
} catch (Exception e) {
throw new Exception(e);
}
return listaEmail;
}
public List<Email> getEmailPorParametro(int pessoaId, int emailId)throws Exception {
Connection conn = null;
ResultSet rs = null;
String sql = BUSCA_POR_PARAMETRO;
List<Email> listaEmail = new ArrayList<Email>();
Email email = new Email();
try {
conn = GerenciadorConexao.getConexao();
CallableStatement clblStmt = conn.prepareCall(sql);
clblStmt.setInt(1,pessoaId);
clblStmt.setInt(2,emailId);
rs = clblStmt.executeQuery();
while (rs.next()) {
email.setId(rs.getInt("EmailID"));
email.setDescr(rs.getString("EmailDescr"));
email.setTipoId(email.getTipoId().getContatoTipoPorId(rs.getString("EmailContatoTipoID")));
listaEmail.add(email);
}
} catch (Exception e) {
throw new Exception(e);
}
return listaEmail;
}
porem, dessa forma ele me retorna o numero certo de linhas que vem do banco, mas tudo igual(sempre o ultimo registro), fazendo essa alteracao ele nao deveria adicionar o valor ao "listaEmail" e quando voltar ao loop sobre-escrever os valores e adicionar o valor novo?
é isso mesmo ou fiz algo errado?
abs
T+