Foros del Web » Programación para mayores de 30 ;) » Java »

Comparar datos entre 2 ó más JTables

Estas en el tema de Comparar datos entre 2 ó más JTables en el foro de Java en Foros del Web. Saludos terrícolas. Les escribo para ver si pueden darme solución al problema que tengo: mi aplicación en Java recoge información de dos bases de datos, ...
  #1 (permalink)  
Antiguo 06/07/2012, 16:06
Avatar de Erick_Lucas  
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 3 meses
Puntos: 1
Comparar datos entre 2 ó más JTables

Saludos terrícolas.

Les escribo para ver si pueden darme solución al problema que tengo: mi aplicación en Java recoge información de dos bases de datos, SQL Server y Oracle, información sobre facturas comerciales y las muestra en 2 JTables, respectivamente. Hasta ahí todo bien, la conexión entre ambas BDs y el llamado de datos es óptima

Lo que yo deseo saber es cómo puede obtener los registros de facturas que se encuentren en el JTable de SQL Server pero que no estén en el JTable de Oracle. Al principio intenté hacer un recorrido a los dos JTables con for y el metodo getRowCount() pero no tuve éxito.

Podrían ayudarme ?

Gracias desde ya.
  #2 (permalink)  
Antiguo 06/07/2012, 16:24
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Comparar datos entre 2 ó más JTables

Hola:

Dos bucles anidados. En el primero coges de una tabla y en el interno buscas ese registro en la otra.

Código java:
Ver original
  1. for (cada registro sql server) {
  2.     boolean encontrado = false;
  3.     for (cada registro en oracle) {
  4.            if (registro sql server == registro oracle) {
  5.                encontrado = true;
  6.                break;
  7.            }
  8.     }
  9.     if (!encontrado) {
  10.           regsitro sql server no está en oracle.
  11.     }
  12. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 07/07/2012, 12:01
Avatar de Erick_Lucas  
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Comparar datos entre 2 ó más JTables

Un honor el haber sido ayudado por ti chuidiang

Dejo el código del método por si alguna otra persona desea guiarse

Código JAVA:
Ver original
  1. /*
  2.      Utilizo la librería javax.swing.DefaultListModel;
  3.      Los nombres objeto son:
  4.      'Jtbl_factsqlsrv' <- el de los datos de SQL Server
  5.      'Jtbl_factoracle' <- el de los datos de Oracle
  6.      'Jlst_facturasnomigradas' <- el JList en donde voy a insertar los codigos de
  7.      las facturas que están en SQL Server pero no en Oracle
  8.  
  9.      Si ya sé, soy pésimo para dar nombres de objetos jeje
  10. */
  11.  
  12. import javax.swing.DefaultListModel;
  13.  
  14. public class Facturacion     {
  15.  
  16.      public void Verificacion()  {
  17.           // Creo e instancio el modelo DefaultListModel
  18.           DefaultListModel modelo = new DefaultListModel();
  19.           // Dos variables String que necesitaré para almacenar los códigos de facturas
  20.           String val1 = null, val2 = null;
  21.           // Primer ciclo 'for' en donde recorreré el JTable de SQL Server
  22.           for (int i = 0; i < Jtbl_factsqlsrv.getRowCount(); i++) {
  23.                // Variable 'boolean' inicializada en false
  24.                boolean encontrada = false;
  25.                // Segundo ciclo 'for' en donde recorreré el JTable de Oracle
  26.                for (int j = 0; j < Jtbl_factoracle.getRowCount(); j++)     {
  27.                     // Almaceno los códigos de facturas SQL Server y Oracle en 'val1'
  28.                     // y 'val2', respectivamente.
  29.                     val1 = String.valueOf(Jtbl_factsqlsrv.getValueAt(i, 0));
  30.                     val2 = String.valueOf(Jtbl_factoracle.getValueAt(j, 0));
  31.                     // Hago la pregunta de que si son iguales
  32.                     if (val1.equals(val2)) {
  33.                          // Coloco a 'encontrada' en true si encuentra coincidencias
  34.                          encontrada = true;
  35.                     }
  36.                }
  37.                // Si es false, hago que se guarde como elemento dentro del modelo
  38.                if (!encontrada) {
  39.                     modelo.addElement(val1);
  40.                }
  41.           }
  42.           // Guardo el modelo final en el JList
  43.           Jlst_facturasnomigradas.setModel(modelo);
  44.      }
  45.  
  46. }

Y listo, se puede colocar el método en cualquier evento, yo lo uso dentro de un 'MouseClicked'

Saludos

Etiquetas: jtable, jtables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:11.