Las consultas a la base de datos se realizan con sentencias SQL que van "embebidas" en otras sentencias especiales que son propias de Java. Por tanto, podemos decir que las consultas SQL las escribimos como parámetros de algunos métodos Java que reciben el String
con el texto de la consulta SQL.
Las consultas devuelven un ResultSet
, que es una clase java parecida a una lista en la que se aloja el resultado de la consulta. Cada elemento de la lista es uno de los registros de la base de datos que cumple con los requisitos de la consulta.
El ResultSet no contiene todos los datos, sino que los va obteniendo de la base de datos según se van pidiendo. La razón de esto es evitar que una consulta que devuelva una cantidad muy elevada de registros, tarde mucho tiempo en obtenerse y sature la memoria del programa.
Con el ResultSet
hay disponibles una serie de métodos que permiten movernos hacia delante y hacia atrás en las filas, y obtener la información de cada fila.
Por ejemplo, para obtener: nif, nombre, apellidos y teléfono de los clientes que están almacenados en la tabla del mismo nombre, de la base de datos notarbd que se creó anteriormente, haríamos la siguiente consulta:
// Preparamos la consulta y la ejecutamos Statement s = n.createStatement(); ResultSet rs = s.executeQuery ("SELECT NIF, NOMBRE," + "APELLIDOS, TELÉFONO FROM CLIENTE");
El método next()
del ResultSet
hace que dicho puntero avance al siguiente registro. Si lo consigue, el método next()
devuelve true
. Si no lo consigue, porque no haya más registros que leer, entonces devuelve false
.