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 31/10/2018 23:14:50
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.

DaoReportes contiene el método para 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
public BeanReportes busRep(BeanReportes Reportes){
   conectar();
   try{
       int id;
       sentenciaSQL  = "SELECT MAX(ID_R)+1 FROM REPORTES";
       ps = conn.prepareStatement(sentenciaSQL);
       rs = ps.executeQuery();
       if (rs.next())
           id = rs.getInt(1);
        else
            id = 1;
       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 (?)";
       ps = conn.prepareStatement(sentenciaSQL);
       ps.setString(1,Reportes.getUsu());
       rs = ps.executeQuery();
       if (rs.next()){
           Reportes = new BeanReportes();
           Reportes.setNumR(rs.getString(1));
           Reportes.setUsu(rs.getString(2));
           Reportes.setFechaA(rs.getString(3));
           Reportes.setTipoEquipo(rs.getString(4));
           Reportes.setSerieE(rs.getString(5));
           Reportes.setFechaC(rs.getString(6));
           Reportes.setSolucion(rs.getString(7));
           Reportes.setObs(rs.getString(8));
       }
       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: " + "busRep", true);
        return null;
    }
   finally{
       desconectar();
   }
}

El código del botón es:
1
2
3
4
5
BeanReportes rep = new BeanReportes();
rep.setUsu(txtBusqueda.getText().trim());
 
DaoReportes repor = new DaoReportes();
repor.busRep(rep);

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

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

Publicado por kingk (108 intervenciones) el 01/11/2018 00:57:10
Hola, el problema es que dentro del metodo busRep creas una nueva instancia de BeanReportes, invalidando lo que pasas como parametro. Podrias eliminar de tu metodo la siguiente linea de codigo:
Reportes=new BeansReportes()
Y ya que no utilizas el valor de retorno modificarlo a void.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar