Update y Delete en Java con JDBC

Resumen

Actualizar y eliminar registros en una base de datos MySQL desde Java con JDBC sigue la misma lógica que un INSERT, pero cambia la sentencia SQL y el método que ejecutas. Si ya sabes leer e insertar datos, cerrar el ciclo con UPDATE y DELETE te deja listo para construir un CRUD completo.

¿Cómo se hace un UPDATE en JDBC paso a paso?

La actualización en JDBC parte de una conexión activa y un objeto Statement que ejecuta la sentencia SQL contra la tabla.

El flujo que se sigue en la clase es directo:

  1. Declarar el ResultSet en null para almacenar después la consulta de verificación.
  2. Crear el objeto Statement con myConn.createStatement(), no con prepareStatement.
  3. Ejecutar la actualización con myStmt.executeUpdate(...) pasando la sentencia SQL.
  4. Lanzar un SELECT posterior para confirmar el cambio.

La sentencia que se ejecuta dentro de executeUpdate queda así: UPDATE employees SET email = 'joana2@example.com' WHERE firstName = 'Joana'. Aquí el SET indica qué columna cambia y el WHERE filtra el registro exacto que recibe el cambio.

¿Cuándo uso executeUpdate y cuándo executeQuery? Usa executeUpdate cuando modificas datos (INSERT, UPDATE, DELETE) porque devuelve el número de filas afectadas. Usa executeQuery solo para SELECT, porque devuelve un ResultSet.

¿Cómo verificar el resultado del UPDATE con un ResultSet?

Después de actualizar, conviene leer la tabla otra vez para confirmar que el cambio quedó guardado.

La verificación se hace asignando myRes = myStmt.executeQuery("SELECT * FROM employees ORDER BY surname") y recorriendo el resultado con un while (myRes.next()) en lugar del if que se usaría para una sola fila. Dentro del bucle se imprimen las columnas con myRes.getString("firstName") y myRes.getString("email") separadas por una coma.

¿Qué errores comunes aparecen al escribir la sentencia SQL?

En la clase aparecen dos errores típicos que ayudan a entender cómo depurar:

  • Escribir el nombre de la tabla con doble s (employeess) en lugar de employees.
  • Olvidar cerrar la comilla simple en el valor del WHERE, por ejemplo WHERE firstName = 'Joana.

La pista la da throws SQLException, que imprime en consola la línea donde está el problema de sintaxis. Leer ese mensaje con calma suele apuntar al carácter exacto que falla.

¿Para qué sirve throws SQLException? Es la cláusula que obliga a tu método a propagar las excepciones de base de datos. Sin ella, Java no compilará el código que usa JDBC, y gracias a ella ves el error puntual en consola.

¿Cómo eliminar un registro con DELETE en JDBC?

El DELETE reutiliza la misma estructura del UPDATE, solo cambia la sentencia SQL dentro de executeUpdate.

La instrucción queda como DELETE FROM employees WHERE firstName = 'Joana'. El método sigue siendo executeUpdate porque estás afectando la base de datos, no consultándola. Después conviene ejecutar un SELECT para listar los empleados restantes y comprobar que el registro desapareció.

En el ejemplo, antes del DELETE la tabla mostraba a John, Jen, Michael, Emily, David y Joana. Después de ejecutar la eliminación, el SELECT devuelve solo a John, Jen, Michael, Emily y David. La verificación cruzada en MySQL Workbench confirma que Joana ya no existe con ninguno de sus datos.

¿Qué operaciones del CRUD ya cubre JDBC?

Con estas tres clases quedan implementadas las cuatro operaciones básicas que cualquier aplicación con base de datos necesita:

  • Create: insertar nuevos empleados con INSERT INTO.
  • Read: consultar datos con SELECT y recorrer el ResultSet.
  • Update: modificar columnas específicas con UPDATE ... SET ... WHERE.
  • Delete: eliminar registros con DELETE FROM ... WHERE.

Esa familiaridad con CRUD es la base para construir cualquier proyecto Java conectado a MySQL. Si ya hiciste el reto de eliminar a un empleado por tu cuenta, cuéntame en los comentarios cómo te fue y qué errores de sintaxis te aparecieron.