Hola a todos, ¿qué tal?
Bueno, llevo un par de días como un loco y no doy con el fallo en mi programa... os cuento un poco de qué va la historia. Tengo una BBDD de empleados y departamentos con una relación 1:N donde cada empleado tiene un solo departamento y los departamentos de 0 a N empleados... Pues bien, estoy programando en Java un aplicación sencilla que permita añadir, eliminar y modificar datos de cualquier empleado/departamento.
Lo tengo todo acabado, excepto un JFrame en el que arriba tengo un JTextField con el nombre de un departamento y debajo de éste un JTable en el que se muestran los datos de todos los empleados de ese departamento. Hay también botones para pasar al siguiente, anterior, primer y último departamento, con sus eventos correspondientes que vacían y rellenan de nuevo la tabla con los empleados correspondientes al departamento activo.
Y por último tengo un botón que me permitiría borrar de la BBDD el empleado que esté seleccionado. Este es el código:
private void jtblEmpleMouseClicked
(java.
awt.
event.
MouseEvent evt
) { System.
out.
println("Entro en evento"); int fila=jtblEmple.getSelectedRow();
System.
out.
println("Fila seleccionada: "+fila
); if(fila >= 0){
System.
out.
println("entro en if"); try{
System.
out.
println("entro en el try"); for(int i=0; i<fila+1; i++){
System.
out.
println("Empleado: '"+rsE.
getString("APELLIDO")+"'. Vuelta número: "+i
); rsE.next();
}
System.
out.
println("Voy a borrar"); //rsE.deleteRow(); línea comentada para no borrar registros en pruebas y quedarme con 0 empleados... xD
//(aún así, esta línea me da unas veces la excepción de 'No data found' y otras la de 'estado del cursor no válido').
System.
out.
println("He borrado."); finally{
System.
out.
println("llego al finally"); limpiaTabla();
rellenaTabla();
System.
out.
println("salgo del finally"); }
}
else
JOptionPane.
showConfirmDialog(null,
"Seleccione un departamento para eliminarlo.",
"Error de borrado",
JOptionPane.
PLAIN_MESSAGE); }
Donde rsE es un ResultSet con todos los empleados del departamento activo y rsD es otro ResultSet con todos los departamentos. Todos esos
println sobran, los he usado para ver qué hace la aplicación y esta me devuelve lo siguiente:
run:
Entro en evento
Fila seleccionada: 1
entro en if
entro en el try
// aquí me salta la Excepción e
llego al finally
salgo del finally
BUILD SUCCESSFUL (total time: 10 seconds)
Este código funcionaba perfectamente para borrar departamentos... Y así llevo un par de días. Hoy he pedido ayuda al profesor y ha estado una hora mirando y tocando sin sacar absolutamente nada, lo cual me hace pensar que seguramente será algún fallo bastante estúpido...
Gracias a todos.