Buenas tardes a todos,
Despues de hacer una consulta a base de datos quiero recorrer el resultset pero no se por que no empieza en la primera posición.
Código:
public AyudasDTO[] metodoDeBusqueda(ArrayList ayudas) throws SQLException {
StringBuffer select = new StringBuffer();
Vector parametros = new Vector();
AyudasDTO[] resulBusqueda = null;
String cadena = "";
for (int j = 0; j < ayudas.size(); j++) {
if (j == 0)
cadena = "'" + ayudas.get(j) + "'";
else
cadena += "," + "'" + ayudas.get(j) + "'";
}
select.append("SELECT " +
"AYPR_DENOMINACION, " + "AYPR_NIF_CENTRO, " + "AYPR_REFERENCIA "
+ "FROM TD_AYUDAS_CENAGRU_WORK " + "WHERE 1 = 1 ");
select.append(" AND AYPR_NIF_CENTRO IN (");
select.append(cadena);
select.append(")");
select.append(" AND AYPR_NUM_AGRU IN (");
select.append(" SELECT PRMA_REF_CENT FROM TD_PREMIADOS_CENAGRU");
select.append(")");
String query = select.toString();
PreparedStatement statement = null;
ResultSet resultset = null;
Object[] values = new Object[parametros.size()];
int i = 0;
for (Iterator it = parametros.iterator(); it.hasNext();) {
values[i++] = it.next();
}
try {
statement = con.prepareStatement(query);
if (values != null) {
for (int j = 0, k = 1; j < values.length; j++, k++) {
statement.setString(k, values[j].toString());
}
}
resultset = statement.executeQuery();
//Aquí me dice que no es la primera posicion
System.out.println("isFirst:" + resultset.isFirst());
resulBusqueda = new AyudasDTO[ayudas.size()];
int m = 0;
while (resultset.next()) {
AyudasDTO ayuda = new AyudasDTO();
ayuda.setDenominacionCentro(resultset
.getString("AYPR_DENOMINACION"));
ayuda.setNifCentro(resultset.getString("AYPR_NIF_CENTRO"));
ayuda.setReferencia(resultset.getInt("AYPR_REFERENCIA"));
resulBusqueda[m] = ayuda;
System.out.println(m);
m++;
}
} catch (SQLException e) {
log.info(e.getMessage());
throw new SQLException("error al buscar solicitudes de ayuda "
+ e.getMessage());
} finally {
closeResultSet(resultset);
closePreparedStatement(statement);
}
return resulBusqueda;
}
La consulta en cuestion lanzada directamente con el TOAD me devuelve 2 resultados, pero como no puedo posicionarme a mano en la primera posición solo me inserta en la variable resultBusqueda un registro.
Alguien me puede dar alguna idea?
Muchas gracias de antemano