Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

CRUD: eliminación de datos

13/25
Recursos

Aportes 19

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Extra: Aunque existen otras formas de chequeos, pero siguiendo la clase…
Problema: Cómo saber si se afectó alguna fila al ejecutar la query. Por ejemplo: Eliminar un mensaje por su id_mensaje y que este no exista.
Solución: statement.executeUpdate() retorna la cantidad de filas affectadas por la consulta.

String query = "DELETE FROM mensaje WHERE id_mensaje = ?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setInt(1, id_message);
int countRowsUpdated = statement.executeUpdate();
if (countRowsUpdated != 0) {
       ..." has been deleted successfully."
} else {
      ... " was not found."
 }

Genial!!, no pensé que iba ser tan sencillo.

Me encantaaaa

Buenas, para hacerlo un poco mas fácil lo puse todo en el paso 3, cuando le damos en borrar mensaje primero pido que vea los mensajes que están disponibles para borrar y luego selecciona el mensaje que desea eliminar y luego te pide si deseas eliminar otro mensaje.

Excelente explicación del borrado, gracias

Un saludo para todas las personas que ven este video, actualicé el proyecto en mi repositorio de github con buenas prácticas.

sobre estos temas yo los he visto en un libro de java interfaces gráficas de ceballos me parece un buen libro

Si optas por abrir conexiones en cada método al menos cierralas cuando terminen las operaciones …

Al leer los aporte veo a muchos que tienen un nivel muy avanzado de programación.

Al compararlo con el método crear se puede ver la mayor dificultad que se requiere para crear algo, muchas gracias por la clase instructor Santiago.

me pregunto cual es la diferencia de colocar el PreparedStatement en diferentes posiciones según cada metodo en las funciones de try/catch.

Funciono correctamente despues de algunos errores que tuve.

esto es super genial!!!

Listo 😃

Yo le hice un pequeño cambio

public static void borrarMensaje(int id_mensaje, String autor) {
        try (Connection conexion = db_connect.getConnection()) {
            PreparedStatement pst = null;
            if (id_mensaje != 0) {
                try {
                    String query = "DELETE FROM mensajes WHERE id_mensaje = ?";
                    pst = conexion.prepareStatement(query);
                    pst.setInt(1, id_mensaje);
                    int ncont = pst.executeUpdate();
                    System.out.println("Registro Eliminado" + ncont);
                } catch (SQLException e) {
                    System.out.println("Error Borrar Registro");
                    System.out.println(e.getCause());
                    System.out.println(e.getStackTrace());
                }

            } else if (autor != "") {
                System.out.println(autor);
                try {
                    String query = "DELETE FROM mensajes WHERE autor_mensaje = "+"?";
                    pst = conexion.prepareStatement(query);
                    pst.setString(1, autor);
                    int ncont = pst.executeUpdate();
                    System.out.println("Registro Eliminado" + ncont);
                } catch (SQLException e) {
                    System.out.println("Error Borrar Registro");
                    System.out.println(e.getCause());
                    System.out.println(e.getMessage());
                    System.out.println(e.getStackTrace());
                }

            }

        } catch (SQLException e) {
            System.out.println("Error Conexion para borrar");
            System.out.println(e.getMessage());
            System.out.println(e.getStackTrace());
        }
    }

Excelente ya habia experimentado si funcionaba solo cambiando el query, seria interesante ver como se comporta con muchas variables que analizar si seria efectivo o no.

De cara a las clases, considero que sería importante que Santiago no tomara como opción el copiar y pegar. Lo digo porque la idea es entender el por qué de las cosas. Por supuesto, yo lo digo con la intención de aportar, no de hacer críticas negativas. En mi caso, yo prefiero transcribir nuevamente el código a mano. Esto ayuda a retener conceptos y a entender justamente el por qué, que es lo más importante.

Buenos días, Sebastian, Un consulta ¿Como saber el tipo de excepción que se debe colocar para cada caso?. Donde se puede profundizar en el manejo de las excepciones

Vamos muy bien