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
Recibe notificaciones por correo