Java - Buscar datos de una BD que están en un JTable

 
Vista:

Buscar datos de una BD que están en un JTable

Publicado por Rogelio Cohen (3 intervenciones) el 01/11/2018 01:05:56
Buenas tardes, mi duda es como filtrar algunos datos de una BD que aparecen en un JTable a partir de escribir en un JTextField el párametro de búsqueda.

Tengo un query almacenado en un método de una clase que se llama daoReportes y quiero llamar a ese método a la hora de presionar un btnFiltrar.
DaoReportes ejecuta el query para hacer la busqueda en la BD ayudado de un BeanReportes que contiene los métodos get y set de los atributos a buscar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
DaoReportes contiene:
   public BeanReportes [] buscarRepor(String nombre){
   conectar();
   BeanReportes[] Reportes;
   BeanReportes Repo;
   int i = 0;
   int cant = 0;
   try{
       sentenciaSQL = "SELECT COUNT (*) FROM REPORTES";
       ps = conn.prepareStatement(sentenciaSQL);
       rs = ps.executeQuery();
 
       if (rs.next()){
           cant = rs.getInt(1);
       }
       Reportes = new BeanReportes[cant];
        sentenciaSQL  = "SELECT NUMERO_REPORTE, NOMBRE, " +
                        "FECHA_APERTURA, TIPO, SERIE_EQUIPO, FECHA_CIERRE, TIPO_SOL, OBS " +
                        "FROM REPORTES " +
                        "JOIN USUARIOS ON REPORTES.ID_USUARIO = USUARIOS.ID_U " +
                        "JOIN TIPO_EQUIPO ON REPORTES.ID_TIPOEQ = TIPO_EQUIPO.ID_TIPOE " +
                        "JOIN SOLUCION ON REPORTES.ID_SOL = SOLUCION.ID_SOLU " +
                        "WHERE UPPER (USUARIOS.NOMBRE) LIKE UPPER ('" + nombre + "')";
       ps = conn.prepareStatement(sentenciaSQL);
       rs = ps.executeQuery();
       while (rs.next()){
           Reportes[i]  = new BeanReportes();
           Reportes[i].setNumR(rs.getString(1));
           Reportes[i].setUsu(rs.getString(2));
           Reportes[i].setFechaA(rs.getString(3));
           Reportes[i].setTipoEquipo(rs.getString(4));
           Reportes[i].setSerieE(rs.getString(5));
           Reportes[i].setFechaC(rs.getString(6));
           Reportes[i].setSolucion(rs.getString(7));
           Reportes[i].setObs(rs.getString(8));
           i++;
       }
       return Reportes;
    }
    catch (SQLException ex){
        UtilsGUI.showError(ConfigDataBase.DB_T_ERROR, ex.getSQLState(), ConfigDataBase.DB_ERR_QUERY + "\n\n" +
                ex.getMessage() + "\n\n" + sentenciaSQL + "\n\nUbicación: " + "getRepDet", true);
        return null;
    }
   finally{
       desconectar();
   }
}

El código del botón es:

1
2
BeanReportes busRep [] = report.buscarRepor(txtBusqueda.getText());
JOptionPane.showMessageDialog(this, "Buscado correctamente");

Al parecer si hace bien la busqueda pero no muestra el resultado en la tabla.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder