ResultSet es otra interfaz que podemos utilizar para recoger el resultado de una de nuestras consultas. Solo podemos utilizar este tipo de objeto para seleccionar datos, ya que no permite actualizar datos, es decir, solo se usa en las sentencias select. Se caracteriza por devolver una tabla de datos según columnas y filas.
Para obtener los datos de la consulta, se tendrá que acceder con un get más el tipo de dato al que queramos acceder. Por ejemplo, getInt devolverá un integer, mientras que un getString devolverá un varchar.
Aquí tenemos una relación de datos que podemos obtener en nuestras consultas:
Tipo de get | Tipo de dato de la BBDD |
getInt | Integer |
getLong | Big int |
getFloat | Real |
getDouble | Float |
getBignum | BTI |
getString | Varchar/char |
getDate | Date |
getTime | Time |
getTimestamp | Time stamp |
getObject | Cualquier otro tipo |
Se caracteriza también por solo avanzar hacia delante con los datos que obtiene, por tanto, no podremos recorrerlos hacia atrás. Para ver cómo funciona, aquí mostramos un breve ejemplo de implementación.
//Paso 1 establecer conexión + pasar la consulta
PreparedStatement s= con.prepareStatement(“select id, dni, nombre
from Estudiantes”);
//Paso 2. Definir resultSet y ejecutar la consulta
ResultSet resultado = s.executeQuery();
//Paso 3. Imprimir el resultado
while(resultado.next()){
System.out.printIn(“Id: “ + resultado.getInt());
System.out.printIn(“dni: “ + resultado.getString());
System.out.printIn(“nombre: “ + resultado.getString());
}
//Paso 4: Cerramos los objetos que usamos para realizar la
conexión y obtener resultado
resultado.close();
Tal y como apreciamos en el ejemplo, primero necesitamos un objeto PreparedStatement para realizar la conexión y preparar la consulta.
A continuación, creamos un ResultSet que nos permitirá ejecutar la consulta y que es donde guardaremos los datos obtenidos.
Como vemos, para ejecutar la consulta solo necesitamos que el objeto PreparedStatement llame al método executeQuery() y que el objeto ResultSet recoja el resultado. Con el método next() recorremos los resultados hacia delante y podemos ir accediendo a ellos según su tipo, como hemos explicado anteriormente.