Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/04/2012, 07:26
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: solo quiero guardar los registros a los que hice cambios ¿como hago?

El tema es complejo, sobre todo si además de update permites que se añadan o borren filas completas de la tabla.

Una solución es según haces cambios en el JTable, guardarte qué fila cambia (una lista de filas que han cambiado), de esta forma luego sólo haces update de esas filas cambiadas.

Lo que planteas es otra posible solución, pero requiere tener en memoria dos veces los datos y luego comparar campo por campo. Si son muchos registros puede requerir mucha memoria (el doble) y mucho tiempo de proceso.

Finalmente, la otra solución es hacer el update en base de datos según se va haciendo cada cambio en el JTable. Esto no te permite "cancelar" un grupo completo de cambios, pero posiblemente es lo más sencillo. Una opción para ese "cancelar" de un grupo completo de cambios es abrir la conexión a base de datos sin auto commit. De esta forma, vas haciendo cambios en el JTable y updates en base de datos y cuando el usuario termine de hacer los cambios, haces un conexion.commit() para hacer efectivos los cambios en bd o un conexion.rollback() para cancelar todos los cambios. Esto suele hacerse cuando desde código se hacen varios cambios en BD y se quiere que se hagan todos o ninguno, no se suele hacer mientras se espera un "aceptar" o "cancelar" del usuario, porque igual pasa media hora y no le da a ninguno de los botones.

Se bueno.
__________________
Apuntes Java
Wiki de Programación