Mostrar datos de MySQL en tablas

    Hacer esto no tiene ningún secreto, pues solo es cuestión de colocar los datos del "ResultSet" que arroja la consulta de MySQL y colocarlos en una tabla, para explicarlo de una forma sencilla, debemos hacer lo siguiente:


- Lo primero es crear la tabla junto con un modelo de tabla, lo cual explico en esta entrada.


- Luego de esto realizamos la consulta, lo mejor seria probar primero con un "SELECT" para ver si estamos realizando bien la consulta de datos.


- Luego creamos una variable que almacenara los metadatos, nos serán útiles para manipular de forma sencilla toda la información que nos arroje la consulta.


             ResultSetMetaData metaDatos = resultado.getMetaData();


- Obtenemos el número de columnas que hay en la tabla que estamos consultando y los almacenamos en una variable, con el propósito de saber cuantos campos existen por cada registro.


             int numeroColumnas = metaDatos.getColumnCount();


- Creamos un arreglo para rellenar nuestra tabla con los valores que obtenemos.


             Object[] nombreCampos = new Object[numeroColumnas];


- Creamos un arreglo para insertar cada una de las columnas que hemos obtenido con el arreglo anterior, comenzando desde 1 porque la primera columna de MySQL es 1 y no 0.


           for (int i=0 ; i < numeroColumnas ; i++)
                nombreCampos[i] = metaDatos.getColumnLabel(i + 1);


- Después agregamos al modelo de la tabla el arreglo con los nombres de cada campo que se tienen en la base de datos, para identificar cada columna.


           modeloTabla.setColumnIdentifiers(nombreCampos);


- Hacemos el bucle "while" para el "ResultSet", lo cual se explica en el ejemplo.


- Y por ultimo agregamos la fila completa que arrojo el resultado a la tabla.


           modeloTabla.addRow(fila);


    Aquí dejo un ejemplo mostrando como hacer todo esto


import java.io.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class Prueba extends JFrame
{
public static void main (String [] args) throws SQLException
{
//Variables Globales
JFrame contenedor = new JFrame();
DefaultTableModel modelo = new DefaultTableModel();
JTable tabla = new JTable(modelo);

//Para el manejo de excepciones utilizamos un try y catch
try
{
// Agregamos el contenedor y lo hacemos visible
contenedor.add(tabla);
contenedor.setVisible(true);

// Cargamos el driver
Class.forName("com.mysql.jdbc.Driver");

// Establecemos la conexion
Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/mi_db","root", "mi_clave");

// Preparamos la consulta
Statement stat = conexion.createStatement();

// Se realiza la consulta
ResultSet resultado = stat.executeQuery ("SELECT * FROM mi_tabla");

// MetaData para obtener las etiquetas de las columnas
ResultSetMetaData metaDatos = resultado.getMetaData();

// Almacenamos el numero de columnas
int numeroColumnas = metaDatos.getColumnCount();

// Se crea un arreglo para rellenar el modelo
Object[] nombreCampos = new Object[numeroColumnas];

// Se obtiene cada una de las etiquetas para cada columna
for (int i = 0; i < numeroColumnas; i++) {

// Con esto obtenemos cada nombre de cada campo, comenzando en 1
nombreCampos[i] = metaDatos.getColumnLabel(i + 1);
}
// Agregamos los resultados obtenidos
modelo.setColumnIdentifiers(nombreCampos);

// Bucle while para la consulta
while (resultado.next())
{
// Se crea un arreglo para las filas, partiendo del número de columnas
Object [] fila = new Object[numeroColumnas];

// Comenzamos a rellenar la tabla comenzando desde 1
for (int i=0;i<numeroColumnas;i++)
fila[i] = resultado.getObject(i+1);

// Agregamos la fila al modelo
modelo.addRow(fila);
}

// Ajustamos el tamaño del frame
contenedor.pack();

// Cerramos la conexión
conexion.close();
}
catch (Exception e)
{
System.out.println (e);
}
}
}

    En este ejemplo dejo explicado paso por paso lo que debemos hacer para rellenar nuestra tabla con datos de MySQL