Estoy intentando crear un tableModel a partir de información tomada de una base de datos.
Hasta ahora he podido tomar el título de las columnas, pero no encuentro cómo hacer el array de Objects[][] para llenar la tabla con los datos.
¿Hay algún método que me diga cuántas filas me ha devuelto un executeQuery?
La única forma que se me ocurre de hacerlo es con:
while (resultado.next()) linea++;
pero me parece una solución algo chapucera.
Código:
public Probando() {
Object datos[][]=null;
String nombreColumnas[];
initComponents();
try{
Class.forName(ControladorJDBC);
conexion = DriverManager.getConnection(baseDatos);
instruccion = conexion.createStatement();
ResultSet resultados = instruccion.executeQuery("select * from Articulos");
ResultSetMetaData columnas = resultados.getMetaData();
int numColumnas = columnas.getColumnCount();
nombreColumnas = new String[numColumnas];
for(int i=1; i<=numColumnas; i++)
nombreColumnas[i-1] = new String(columnas.getColumnName(i));
// Aquí debería llenar datos, que es un array que se le pasa al TableModel
jTable1.setModel(new javax.swing.table.DefaultTableModel(datos, nombreColumnas) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.Integer.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
}
catch(SQLException excepcionSql){
System.out.println(excepcionSql);
}
catch(ClassNotFoundException claseNoEncontrada){
System.out.println(claseNoEncontrada);
}
}
Es mi primera vez usando Object, así que se aceptan todo tipo de sugerencias.
De antemano gracias por su ayuda.
¡Saludos!