Olá a todos, desculpem se o assunto já foi postado anteriormente, mas eu não pude encontrar.
O situação é a seguinte:
Estou fazendo uma consulta simples em um banco de dados e o resultado estou jogando em um result set e eu preciso pegar o numero de resultados que foram retornados pela query para saber quantas vezes meu loop vai ter que rodar para preencher corretamente o vetor 'temp', para isso eu criei uma função getRowsNumber.
Código do programa:
…
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs;
rs = stmt.executeQuery();
int rows = getRowsNumber(rs);
while (rs.next()){
String[] temp = new String[3];
for(int j=1; j <= rows ;j++){
temp[j-1] = rs.getString(j);
}
…
Função getRowsNumber:
public static int getRowsNumber(ResultSet rs) throws SQLException{
int rows = 0;
while(rs.next()){
rows++;
}
return rows;
}
O [b]problema[/b] é que quando eu uso a função getRowsNumber ele perde o resultset e a perda a busca que foi feita.
Eu já tentei criar um outro result set igual ao 'rs' da função e disparar o getRowNumber por ela, da o mesmo erro.
Só que se eu ao invés de atribuir a função getRowsNumber a variável rows eu atribuir um inteiro com o tamanho do resultado ele funciona perfeitamente (nesse caso eu sei quantos registros irão retornar nesta busca).
Já procurei outras soluções já consultei colegas e já dei um STFW e não tive muito sucesso, gostaria que alguém que saiba ou já tenha passado por isso me diga onde eu estou errando, talvés eu esteja fazendo algo 'sem noção' devido a pouca experiencia em java pois estou começando a programar em java agora.
Agradeço a atenção de todos.
Caso eu não tenha sido claro na xplicação do meu problema avisem por favor, não gostaria que vocês ficassem perdendo tempo tentando entender algo que eu não expliquei direito, se for o caso eu elaboro uma explicação mais detalhada do problema.
