No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
19 Hrs
34 Min
53 Seg
Curso de Java SE: SQL y Bases de Datos

Curso de Java SE: SQL y Bases de Datos

Ana Fernanda Gutierrez Villanueva

Ana Fernanda Gutierrez Villanueva

Eliminar Datos en Java

13/22
Recursos

El método delete(Integer id) está implementando la funcionalidad de eliminar un registro de la base de datos. Utiliza una conexión a la base de datos obtenida mediante getConnection(), luego crea un objeto PreparedStatement con la consulta SQL “DELETE FROM employees WHERE id=?” y establece el valor del parámetro id utilizando myStamt.setInt(1, id). Finalmente, ejecuta la actualización mediante myStamt.executeUpdate() para eliminar el registro correspondiente al ID proporcionado.

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Buen día, Considero que en el método delete(Integer id) es necesario realizar la validación si existe o no el empleado que se quiere eliminar: Mi solución con la validación: ![](https://static.platzi.com/media/user_upload/image-36ef6e10-8aed-42e8-a1b1-32c4a4796163.jpg) `@Override` `public void delete(Integer id) throws SQLException {` ` if(getById(id) != null){` ` try(PreparedStatement myStamt = getConnection().prepareStatement("DELETE FROM employees WHERE id= ?")){` ` myStamt.setInt(1,id);` ` myStamt.executeUpdate();` ` System.``out``.println("Empleado eliminado");` ` }` ` }else{` ` System.``out``.println("Empleado a eliminar no existe");` ` }` `}` Espero sea de ayuda para todos. Saludos y éxitos.
Por que en el if(employee.getId()!=null) no marca un error? a mi me indica que no puedo comparar con null ya que es un valor de tipo int ![](https://static.platzi.com/media/user_upload/image-db6a4435-f6e8-467f-bb64-bc4876421d02.jpg)

@Override
public void save(Employee employee) throws SQLException {
String sql;
// si contiene un valor numerico mayor que cero , entonces existe un id y es una actualizacion
if(employee.getId()!= null && employee.getId()>0){
sql = “UPDATE empleados SET nombre = ?, apellidos = ?, correo = ?, salario = ? WHERE id = ?”;
}else{
sql = “INSERT INTO empleados(nombre,apellidos,correo,salario) VALUES(?,?,?,?)”;
}
try(PreparedStatement myStamt = getConnection().prepareStatement(sql)){
myStamt.setString(1,employee.getNombre());
myStamt.setString(2,employee.getApellidos());
myStamt.setString(3,employee.getCorreo());
myStamt.setInt(4,employee.getSalario());
if (employee.getId() != null && employee.getId()>0) {
myStamt.setInt(5,employee.getId());
}
myStamt.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
}
}

Si actualizas directamente seteando el valor de Id y el resto de valores, estás sobreescribiendo los datos del registro y puedes cometer errores no deseados, lo correcto es traer el registro por Id, modificar el dato y salvarlo: Employee employee2 = repository.getById(6); employee2.setSalary(6400000); repository.save(employee2);
Creación de los métodos:Creación de los métodos:Creación de los métodos:````js Creación de los métodos: ```java @Override public void delete(Employee employee) throws SQLException { String query = "DELETE FROM employees WHERE id=?"; try(PreparedStatement stmt = getConnection().prepareStatement(query)){ if(findById(employee.getId())!=null){ stmt.setInt(1, employee.getId()); stmt.executeUpdate(); } } } ``` ```` @Override public void delete(Employee employee) throws SQLException { String query = "DELETE FROM employees WHERE id=?"; try(PreparedStatement stmt = getConnection().prepareStatement(query)){ if(findById(employee.getId())!=null){ stmt.setInt(1, employee.getId()); stmt.executeUpdate(); } } }
@Override public void Eliminar(Integer Id) { } private PERSONA CrearPersona(ResultSet myRes) throws SQLException { PERSONA e=new PERSONA(); e.setIdPersona(myRes.getInt("IdPersona")); e.setNombrePersona(myRes.getString("NombrePersona")); return e; }
Hola java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 6' at line 1 No entiendo por que me genera este error en el momento en que quiero actualizar el registro con id=6, al parecer es un error en la sintaxis de SQL, pero no logro saber en que estoy fallando