Una ultima funcionalidad que le falta a nuestro miniproyecto debase de datos
1. Una ultima funcionalidad que le falta a nuestro miniproyectodebase de datos, es la de poder "modificar" los
datos leidos de la base de datos, para despues poder guardar esos cambios, para ello:
- Añadimos un nuevo jButton a nuestro proyecto.
- En nuestra clase, persona.java añadimos el codigo:
public void updatePersona(String id, String name, String paterno, String materno,
String mail){
try {
PreparedStatementpstm = con.getConnection().prepareStatement("update
persona " +
"setNombre = ? ," +
"appPaterno = ? ," +
"appMaterno = ? ," +
"mail = ? " +
"where id = ? ");
pstm.setString(1, name);
pstm.setString(2, paterno);
pstm.setString(3, materno);
pstm.setString(4, mail);
pstm.setString(5, String.valueOf(id));
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}
Explicacion: Esta nueva funcion, recibe como parametros el "id" codigo del registro que se modificara, ademas
de los datos necesarios para realizar la consulta, como el nombre, apellido paterno , materno y el mail de la
persona.
Luego
se
realiza
una
consulta
SQL
pasando
esos
Ya en el jFrame de nuestro proyecto, al nuebojButton que creamos, añadimos el siguiente codigo:
private void jButton1ActionPerformed(java.awt.event.ActionEventevt)
{
if (fila> -1){
String codigo = String.valueOf(tabla.getValueAt(fila, 0));
String name = txtname.getText();
String pat = txtpaterno.getText();
datos.
2. String mat = txtmaterno.getText();
String mail = txtmail.getText();
p.updatePersona(codigo, name, pat, mat, mail);
updateTabla();
}
}
Lo unico que hace es capturar los datos del JTable, asignarlas a variables y llamar a la funcionupdatePersona().
Le añadiremos una nueva funcionalidad a nuestro proyectobase de datos y netbeans, esta funcionalidad es la
de poder eliminar registros de la base de datos, todo de una forma visual y sencilla.
Recordemos
un
poco,
nuestro
proyecto
se
llama "contactos",
las
clases
que
utilizamos
son conectate.java y persona.java, la base de datos (dbcontactos) y contiene una tabla (persona) puedes ver
con mas detalle nuestra base de datos aqui.
Los cambios que realizamos son:
Añadiremos un nuevo jButton al proyecto, lo llamaremos "cmdEliminar", nuestra interfaz debe quedar de esta
forma.
Para poder eliminar un registro de la base de datos realizaremos una instruccion SQL con el comando DELETE,
para ello debemos tener muy en cuenta la conformacion de nuestra tabla "Persona".
En la clase persona.java, añadiremos la nueva funcion deletePersona(), dentro la cual colocaremos la
instruccion SQL, ejecutaremos la sentencia y cerramos.
public void deletePersona(String cod){
try {
PreparedStatement pstm =
con.getConnection().prepareStatement("delete from persona where id =
?");
pstm.setString(1, cod);
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
3. }
}
Ahora
en
el
JFrame
correspondiente,
al
boton
que
creamos
"cmdEliminar",
le
añadimos
el
evento ActionPerformded, copias el siguiente codigo.
private void cmdEliminarActionPerformed(java.awt.event.ActionEvent evt) {
if (fila > -1){
String codigo = String.valueOf(tabla.getValueAt(fila,
0));
p.deletePersona(codigo);
updateTabla();
fila=-1;
}
}
Este código lo que hace es revisar si la variable "fila" contiene un valor diferente a "-1",esto sucede cuando se
realiza un clic sobre el objeto "tabla", si esto es cierto, quiere decir que tenemos una fila seleccionada, por lo
tanto procedera a extraer elcodigo correspondiente y con este codigohara un llamado a deletePersona(codigo),
elimina el registro y reinicia el valor de fila a -1 para evitar inconvenientes.