No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

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 鈥淒ELETE 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 = 鈥淯PDATE empleados SET nombre = ?, apellidos = ?, correo = ?, salario = ? WHERE id = ?鈥;
}else{
sql = 鈥淚NSERT 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