Java - Como mostrar los datos de una consulta en un jtable

 
Vista:
Imágen de perfil de Edinson
Val: 52
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Como mostrar los datos de una consulta en un jtable

Publicado por Edinson (22 intervenciones) el 20/10/2016 22:19:18
Tengo esta consulta
SELECT t.id_tarifa_t, r.ciudad_origen, r.ciudad_destino, s.descripcion_s , t.hora_salida, t.costo_pasaje
FROM tarifa t , ruta10 r, servicio s WHERE t.id_servicio = s.id_servicio AND t.id_ruta = r.id_ruta

estoi cogiendo los datos de 3 tablas que tengo en mi BD en MYSQL UTILIZO el servidor XAMP . y al ejecutar la consulta me muestra los datos que yo deseo
Sin-titulo

pero yo quiero hacer esa misma consulta y ejecutarla y que esos datos se cargen en un jtable desde netbeans..
alguien que me de una ayudadita ..se los agradeceria muchisimo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
String consulta = "SELECT t.id_tarifa_t, r.ciudad_origen, r.ciudad_destino, s.descripcion_s , t.hora_salida, t.costo_pasaje FROM  tarifa t , ruta10 r,   servicio s WHERE t.id_servicio = s.id_servicio AND t.id_ruta = r.id_ruta";
 
String cargar[] = new String[5];
 
Statement sta = con.createStatement();
ResultSet rs = sta.executeQuery(consulta);
 
int f = tabla_tarifa.getRowCount();
 
for (int i = 0; i < f; i++) {
 
    modelo_tarifa.removeRow(0);
}
 
while (rs.next()) {
 
    cargar[0] = rs.getString("t.id_tarifa");
    cargar[1] = rs.getString("r.ciudad_origen" +rs.getString("r.ciudad_destino"));
    cargar[2] = rs.getString("s.descripcion_s");
    cargar[3] = rs.getString("t.hora_salida");
    cargar[4] = rs.getString("t.costo_pasaje");
    modelo_tarifa.addRow(cargar);
 
}

Lo intento hacer asi y no me resulta
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

Como mostrar los datos de una consulta en un jtable

Publicado por YYanes (144 intervenciones) el 21/10/2016 14:37:16
Hola amigo:

la primera recomendación que le hago es que separe su conexión a la base de datos de la interfaz del programa, es decir, creas una clase de acceso a datos (ADO) y ahí vas poniendo todos los métodos de interacción con la BD que necesites: insert, select, update y delete. Luego crea clases (por ejemplo, una clase Viaje que tenga como atributos todos esos parámetros de tu consulta) y así tendrás un objeto completo que retornar en los métodos de tu calse ADO. Te pondré un ejemplo en donde obtendremos un listado de Municipios de la base de datos y lo pondremos en un JTable:

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//--- Una clase Municipio que necesitaremos en la clase ADO: ---
public class Municipio {
    private int id;
    private String nombre;
 
    public Municipio(int Id, String Nombre) {
        this.id = Id;
        this.nombre = Nombre;
    }
    //-----------------------
    public int getId() {
        return id;
    }
 
    public String getNombre() {
        return nombre;
    }
}
 
//--- En tu clase ADO: Acces Data Object: ---
 
    public LinkedList<Municipio> GetListadoMunicipios(int provId)
    {
        LinkedList<Municipio> ListadoMunicipios = new LinkedList<Municipio>();
        String sql = "select Municipio.Id ,Municipio.Nombre from Municipio where ProvinciaId = ?;";
 
      try {
            PreparedStatement preSt = conexion.prepareStatement(sql);
            preSt .setInt(1, provId);
            preSt.execute();
 
            ResultSet rs = preSt.executeQuery();
            while (rs.next()) //Esta es la forma correcta de recorrer los valores obtenidos de una consulta
            {
                id = rs.getInt(1);
                MpioNombre = rs.getString(2);
                Municipio m = new Municipio(id, MpioNombre); //creamos un objeto de clase Municipio y luego
                ListadoMunicipios.add(m); // lo agregamos al listado que retornaremos
            }
        }
      catch (Exception e){
      }
 
        return ListadoMunicipios;
    }
 
//--- En la interfaz del programa, en donde tiemes tu JTable: ---
 
    public void ListarMunicipios()
    {
        Clase_ADO clase_ADO= new Unidad_ADO();
        DefaultTableModel tabla= (DefaultTableModel) Tabla_Mpios.getModel();
 
          LinkedList<Municipio> ListadoMpios = new LinkedList<Municipio>();
          ListadoMpios = clase_ADO.GetListadoMunicipios(ComboBox_Provincia.getSelectedItem().toString());
          tabla.setNumRows(0);
 
            for(int i =0; i<ListadoMpios.size(); i++)
            {
               Object [] row = {ListadoMpios.get(i).getId(), ListadoMpios.get(i).getNombre()};
               tabla.addRow(row);
            }
 
    }

La ventaja de separar en código en diferentes clases es que creas un par de patrones conocidos como "Alta Cohesión" y "Bajo Acoplamiento": el primero significa asignar a las clases responsabilidades de forma tal que trabajen sobre una misma área de la aplicación, y que no tengan mucha complejidad; y el segundo, es asignar responsabilidades para que las clases se comuniquen con el menor número de clases posible, para de esta forma minimizar las dependencias y se simplifica el código. De esta forma conseguirás un código más legible, reutilizable, acilitarás la documentación, y reducirás el tiempo, además, será más fácil detectar y tratar errores.
Espero haberle ayudado en algo.

Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Como mostrar los datos de una consulta en un jtable

Publicado por JP (1 intervención) el 23/12/2020 23:14:38
Solo te falta crear un mode lo de JTable

creas un areglo para los titulos de las columnas
String[] titulos = {"id_Tarifa", "Ciudad","descripcion","Costo"}; // Y los campos que quieras agregar a tus columnas
puedes usar DefaultTableModel model = new DefaultTableModel(null, titulos); //Le pasas null y el array para las columnas que es titulos


una vez que tu creaste tu arreglo donde vas a meter los datos de la consulta que tu le llamaste cargar[5] de 5

vas a pasarle dichos datos al modelo creado en este caso tenemos el objeto llamado model

model.addRow(cargar); // le pasas cargar ya que es donde estan los registros de la consulta en este caso son tus filas

una ves que pasaste tus registros al modelo, ahora te queda agregar dicho modelo al nombre de la variable de tu JTable

por ejemplo

jtDatos // seria el nombre de mi tabla

jtDatos.setModel(model);

y lsito ahora tu JTable ya tiene los datos del modelo
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