Bom dia a todos. Gostaria de saber porque o meu ArrayList que recebo, não intera todos os objetos do outro array, e sim apenas o último.
olhe só o código.
no meu DAO eu tenho o seguinte método
public ArrayList<Protocolo> mostrarDados(String filtroProtocolo, String filtro) throws SQLException{
ArrayList<Protocolo> listaProtocolos = new ArrayList<Protocolo>();
Protocolo protocolo = new Protocolo();
String sql = "SELECT * FROM \"Protocolo_protocolo\" WHERE LOWER("+"\""+filtroProtocolo+"\""+") like LOWER('"+filtro+"%')";
.............................................
while(rs.next()){
qntRegistros++;
protocolo.setData(rs.getDate(1));
protocolo.setUF(rs.getString(2));
protocolo.setMunicipio(rs.getString(3));
protocolo.setNumProcesso(rs.getString(4));
protocolo.setNomeRequerente(rs.getString(5));
protocolo.setDestino(rs.getString(6));
protocolo.setTitulo(rs.getString(7));
protocolo.setAssunto(rs.getString(8));
protocolo.setCodigo(rs.getInt(9));
listaProtocolos.add(protocolo);
}
… no meu Servlet eu utilizo o método.
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
controleDAO controleDao = new controleDAO();
try {
ArrayList<Protocolo> listaProtocolo = new ArrayList<Protocolo>();
listaProtocolo.addAll(controleDao.mostrarDados(request
.getParameter("filtroProtocolo"), request
.getParameter("filtro")));
… e oq acontece é que… listaProtocolo repete todos os valores do último do ArrayList que o método mostrarDados me passa. Não sei porque. … eu já fiz o teste dentro do proprio método mostrarDados, e ele funciona perfeito. Mas nesse momento em que eu passo pra servlet e coloco em outro ArrayList, ele só pega os dados do último objeto do ArrayList que mostraDados() retorna.
Alguém poderia me ajudar ?