Cuando estamos trabajando bases de datos, es de gran utilidad mostrar los resultados de una consulta en un objeto JTable, los objetos ResultSet del paquete java.sql de la J2SE proporcionan una tabla de datos que representan un conjunto de resultados de bases de datos, que normalmente es generado por la ejecución de un comunicado a traves de sentencias SQL a la base de datos. Aunque un objeto ResultSet solo se mueve hacia adelante, por lo que solo se puede iterar sobre este solo una vez, desde la primer fila hasta la última a travez del método next(), resulta muy util.
Por lo que el siguiente fragmento de código proporciona una idea de como tratar a los objetos java que proporcionen tablas de datos.
public static TableModel resultSetToDefaultTableModel(ResultSet rs) throws SQLException{
ResultSetMetaData rsmd=rs.getMetaData();final int numCols=rsmd.getColumnCount();//El numero de columnas en la consulta
String[] columnas=new String[numCols];
Object[][] datos=new Object[0][0];//Esto representara los datos de la consulta o registros
//Aqui obtenemos los nombres de las columnas
for(int i=0;i<numCols;i++)
columnas[i]=rsmd.getColumnName(i+1);
rsmd=null;
//Iteramos por las filas del ResultSet
while(rs.next()){
//Creamos un array que representara cada registro con la misma longitud de columnas
Object[] registro=new Object[numCols];
//Copiamos los datos del registro
for(int i=0;i<numCols;i++){
registro[i]=rs.getObject(i+1);
}
//Aumentamos el tamaño de la matriz en 1
datos=Arrays.copyOf(datos, datos.length+1);
//Agregamos el nuevo registro al final, ("Una nueva fila")
datos[datos.length-1]=registro;
}
rs.close();
return new DefaultTableModel(datos,columnas);
}//Fin del método resultSetToDefaultTableModel
Me parece que los comentarios explican muy bien el código.
Gran post. Felicidades !
ResponderEliminar