Recuperar varios ResulSet del Statement

2253 vistas

El método getMoreResults() permite verificar si hay más ResultSet.

Veamos un ejemplo:



java
  1. Statement statement =...;
  2. if (!statement.execute()) {
  3.     System.out.println("La consulta no devuelve ningún ResultSet");
  4. } else {
  5.     ResultSet primerResultSet = statement.getResultSet();
  6.     if (statement.getMoreResults(Statement.KEEP_CURRENT_RESULT)) {
  7.         ResultSet segundoResultSet = statement.getResultSet();
  8.  
  9.         // ahora los dos ResultSet están abiertos y preparados para ser usados
  10.         primerResultSet.next();
  11.         segundoResultSet.next();
  12.         // ...
  13.     }else{
  14.         System.out.println("No hay un segundo ResultSet");
  15.     }
  16. }



Los parámetros del método getMoreResults pueden tomar los valores siguientes:

  • Statement.CLOSE_CURRENT_RESULT: El ResultSet activo tiene que cerrarse antes de la llamada al método getMoreResults.
  • Statement.CLOSE_ALL_RESULTS: todos los ResultSet anteriores tienen que estar cerrados antes de la llamada al método getMoreResults.
  • Statement.KEEP_CURRENT_RESULT: El ResultSet activo no tiene que estar cerrado en el momento de la llamada al método getMoreResults.

El parámetro por defecto es Statement.CLOSE_ALL_RESULTS.