Statement y ResultSet

JDBC nos permite ejecutar nuestras propias sentencias SQL, y en este episodio os enseño de qué forma podéis crear vuestras propias Statement y recorrer el cursor que os devuelve mediante el uso de un ResultSet.

Hay una versión nueva de este curso. Haz clic aquí para revisar JDBC, la versión actualizada de este curso.

Cuando trabajamos con bases de datos en Java, una de las herramientas fundamentales que utilizamos es JDBC, que nos permite ejecutar consultas SQL directamente desde nuestro código. Para ello, es imprescindible tener claro que todas las consultas que hagamos serán en SQL, por lo que es importante mantener fresco nuestro conocimiento de este lenguaje.

Para ilustrar cómo hacer consultas, podemos empezar con algo sencillo, como obtener la lista completa de alumnos. La consulta SQL típica sería un SELECT * FROM alumnos, que nos devuelve todas las columnas de la tabla. Si queremos ser más específicos, podemos seleccionar solo algunas columnas, por ejemplo, SELECT ydealumno, nombre, apellidos FROM alumnos. Además, podemos filtrar resultados usando cláusulas WHERE, como obtener solo el alumno con un ID específico o aquellos cuyo nombre coincida con un patrón usando LIKE.

También podemos hacer consultas más complejas, como un JOIN entre tablas. Por ejemplo, si queremos saber qué profesor imparte cada asignatura, podemos unir las tablas asignaturas y profesores usando una condición que relacione el profesor con la asignatura. Esto nos permitirá obtener datos combinados de ambas tablas en una sola consulta.

En Java, para ejecutar estas consultas, utilizamos el objeto Statement que obtenemos a partir de la conexión con la base de datos. Este objeto nos permite enviar la consulta SQL y nos devuelve un ResultSet, que es un cursor que apunta a los resultados obtenidos. Este cursor funciona como un iterador que podemos mover fila a fila usando métodos como next(). Cada vez que avanzamos el cursor, podemos obtener los datos de esa fila usando métodos como getInt(), getString(), getFloat(), entre otros, dependiendo del tipo de dato que esperamos.

Podemos acceder a los datos del ResultSet de dos formas: por índice de columna, donde la primera columna es la 1, la segunda la 2, y así sucesivamente; o por nombre de columna, que suele ser más claro y menos propenso a errores si cambia el orden de las columnas en la consulta.

Por ejemplo, si queremos obtener el ID del alumno, su nombre y apellidos, podemos hacer algo así:

Statement statement = conexion.createStatement();
String sql = "SELECT ydealumno, nombre, apellidos FROM alumnos";
ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {
    int idAlumno = resultSet.getInt("ydealumno");
    String nombre = resultSet.getString("nombre");
    String apellidos = resultSet.getString("apellidos");
    System.out.println("Alumno " + idAlumno + ": " + nombre + " " + apellidos);
}

resultSet.close();
statement.close();

Es importante cerrar tanto el ResultSet como el Statement una vez que hemos terminado de usarlos para liberar recursos y evitar problemas con el recolector de basura de Java, que no siempre maneja bien estos objetos de JDBC.

Así, con estas herramientas básicas, podemos empezar a interactuar con nuestras bases de datos desde Java, ejecutando consultas SQL y navegando por los resultados de forma eficiente y controlada. En próximos pasos, podremos explorar otras formas de ejecutar consultas y manejar resultados para optimizar nuestras aplicaciones.

Lista de reproducción
  1. 1
    Presentación de JDBC
    4 minutos
  2. 2
    Instalando MySQL
    7 minutos
  3. 3
    Creando tablas
    9 minutos
  4. 4
    Agregando el driver JAR
    7 minutos
  5. 5
    Estableciendo la conexión
    8 minutos
  6. 6
    Statement y ResultSet
    9 minutos
  7. 7
    Bobby Tables y PreparedStatement
    8 minutos
  8. 8
    Transacciones y MySQL
    6 minutos
  9. 9
    Transacciones, commits y rollbacks (parte 1)
    7 minutos
  10. 10
    Transacciones, commits y rollbacks (parte 2)
    6 minutos
  11. 11
    Ejemplo: Crear modelos
    9 minutos
  12. 12
    Ejemplo: Crear los DAO (parte 1)
    10 minutos
  13. 13
    Ejemplo: Crear los DAO (parte 2)
    12 minutos
  14. 14
    Ejemplo: Crear los DAO (parte 3)
    13 minutos
  15. 15
    Ejemplo: DAO Manager
    12 minutos
  16. 16
    Ejemplo: CRUD Alumnos (parte 1)
    15 minutos
  17. 17
    Ejemplo: CRUD Alumnos (parte 2)
    14 minutos
  18. 18
    Ejemplo: CRUD Alumnos (parte 3)
    13 minutos
  19. 19
    Ejemplo: CRUD Profesores
    25 minutos
  20. 20
    Ejemplo: CRUD Asignaturas
    alrededor de 1 hora
  21. 21
    Ejemplo: Login (final adelantado)
    17 minutos
  22. 22
    Conectar a PostgreSQL en Java con JDBC
    8 minutos
  23. 23
    Conectar a PostgreSQL en Kotlin con JDBC
    7 minutos
  24. 24
    Conectar a PostgreSQL en Java con JDBC (con NetBeans)
    10 minutos