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



3 Comentarios

Escribir Comentario
Anónimo
AUTOR
19 de diciembre de 2008, 13:47 delete

Hola, como estas, tu pagina es excelente, si queres pasate por mi pagina y dejame un comentario, tengo mucho trafico en mi sitio, si te interesa podemos hacer un intercambio de links, banners, cualquier cosa avisame, te dejo mi email tvinternet08@gmail.com, te mando un abrazo.

Responder
avatar
kain_raziel
AUTOR
27 de junio de 2009, 17:44 delete

hola :-h que tal brother muy bueno tu blog :D , mira estuve checando el ejemplo de JTable que pones aquí(ya que quiero aprender a utilizar las JTable), pero al momento de ejecutar la clase solo trae consigo los registros de la tabla, pero los nombres de las columnas no las muestra no se si hice algo mal pero espero me puedas decir por que sucede dicho problema y suerte con tu blog.

Responder
avatar
28 de junio de 2009, 0:42 delete

Gracias, tengo tiempo sin publicar codigo de Java pero para colocar los nombres de las columnas haces lo que esta mas arriba que es esto:

modeloTabla.setColumnIdentifiers(nombreCampos);

Puesto que se esta creando un objeto del tipo tabla no se extraen los nombres de las columnas, solo lo que hay dentro de ellas, de cualquier forma puedes colocar parte del código y puedo ayudarte mejor.

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión