Acceso a datos

CRUD

En este artículo se explicará cómo realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en una base de datos utilizando Java y JDBC. Se proporcionarán ejemplos de código para cada operación, así como mejores prácticas para manejar las conexiones a la base de datos y gestionar los recursos de manera eficiente.

¿Qué es CRUD?

CRUD es un acrónimo que representa las cuatro operaciones básicas que se pueden realizar en una base de datos: Crear (Create), Leer (Read), Actualizar (Update) y Eliminar (Delete). Estas operaciones son fundamentales para la gestión de datos en aplicaciones de software y permiten a los usuarios interactuar con la información almacenada en una base de datos.

Operaciones CRUD en Java con JDBC

Para realizar operaciones CRUD en una base de datos utilizando Java y JDBC, debes seguir los pasos para establecer una conexión a la base de datos, crear declaraciones SQL para cada operación y ejecutar esas declaraciones. A continuación, se presentan ejemplos de código para cada operación CRUD.

Crear (Create)

String sqlInsert = "INSERT INTO users (name, email) VALUES (?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sqlInsert);
preparedStatement.setString(1, "John Doe");
preparedStatement.setString(2, "Ann Smith");
int rowsInserted = preparedStatement.executeUpdate();
if (rowsInserted > 0) {
    IO.println("A new user was inserted successfully!");
}

Leer (Read)

String sqlSelect = "SELECT * FROM users";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sqlSelect);
while (resultSet.next()) {
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    String email = resultSet.getString("email");
    IO.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}

Actualizar (Update)

String sqlUpdate = "UPDATE users SET email = ? WHERE id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sqlUpdate);
preparedStatement.setString(1, "Lenna Smith");
preparedStatement.setInt(2, 1);
int rowsUpdated = preparedStatement.executeUpdate();
if (rowsUpdated > 0) {
    IO.println("An existing user was updated successfully!");
}

Eliminar (Delete)

String sqlDelete = "DELETE FROM users WHERE id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sqlDelete);
preparedStatement.setInt(1, 1);
int rowsDeleted = preparedStatement.executeUpdate();    
if (rowsDeleted > 0) {
    IO.println("A user was deleted successfully!");
}

Mejores prácticas para manejar conexiones a la base de datos

  1. Usar try-with-resources: Utiliza la declaración try-with-resources para asegurarte de que las conexiones, declaraciones y result sets se cierren automáticamente, incluso si ocurre una excepción.
  2. Manejar excepciones: Asegúrate de manejar las excepciones de manera adecuada para evitar que tu aplicación se bloquee y para proporcionar información útil sobre los errores.
  3. Usar PreparedStatement: Utiliza PreparedStatement en lugar de Statement para evitar ataques de inyección SQL y mejorar el rendimiento al reutilizar las declaraciones preparadas.
  4. Cerrar recursos: Siempre cierra las conexiones, declaraciones y result sets después de usarlos para liberar recursos y evitar fugas de memoria.
  5. Configurar el pool de conexiones: Considera usar un pool de conexiones para mejorar el rendimiento de tu aplicación al reutilizar conexiones a la base de datos en lugar de abrir y cerrar conexiones repetidamente.
  6. Validar entradas: Asegúrate de validar las entradas del usuario antes de usarlas en consultas SQL para evitar errores y mejorar la seguridad de tu aplicación.

Conclusión

Realizar operaciones CRUD en una base de datos es esencial para la gestión de datos en aplicaciones de software. Utilizando Java y JDBC, puedes implementar estas operaciones de manera eficiente y segura siguiendo las mejores prácticas para manejar conexiones a la base de datos y gestionar los recursos. Al dominar las operaciones CRUD, podrás crear aplicaciones que interactúen con bases de datos de manera efectiva y proporcionen una experiencia de usuario sólida.

Copyright Jesús Aurelio Castro Magaña © 2026