Basado en el tutorial Meter un ResultSet en un JTable veremos muy brevemente como hacerlo, destacando las principales líneas del código.
- En primera instancia nos conectamos a la BD y ejecutamos la consulta SQL que nos llenará el ResultSet
//Reemplazar localhost, prueba, usuario y clave por los host de la base de datos, nombre de esquema, user y pass.
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/prueba","usuario","clave");
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery("select * from persona");
- Crear un JTable, pasando como parámetro un DefaultTableModel
- Nos queda resolver como llenar el DefaultTableModel. Básicamente, la forma es esta:
modelo.addColumn("id");
modelo.addColumn("nombre");
modelo.addColumn("nacimiento");
// Bucle para cada resultado en la consulta
while (rs.next()) {
// Se crea un array que será una de las filas de la tabla.
Object [] fila = new Object[3]; // Hay tres columnas en la tabla
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
for (int i=0;i<3;i++)
fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
- Una alternativa propuesta en el tutorial es crear una clase ConversorResultSetADefaultTableModel (puedes optar por un nombre más corto
) que haciendo uso del atributo ResultSetMetaData del ResultSet pueda obtener la metadata de las columnas seleccionadas. De esta forma, nos independizamos de la consulta que se realice y el número de filas y columnas devueltas.



Marcelo
agosto 7, 2008
Hoye, que bien, es un buen tutorial asi por decirlo, da grandes ideas para hacer otras cosas.
Talves te animarias hacerlo con JTable, también insertar un regsitro desde un text Fields, y nostralo en JTable.
Saludo ………..
Luciano
agosto 7, 2008
Si, está bueno como comienzo… obviamente, el próximo paso es hacer un pequeño ABM.
elias
septiembre 29, 2008
Hola tengo una duda y un problemilla estoy haciendo un programita en java, me conecto a la base de datos de mysql aqui el problema es como puedo hacer para saber si la sentencia trae datos no?
Jesus
octubre 28, 2008
Oye buenisimo me ayudo no tienes idea me aclaro algunas dudas y sobre todo me salio mi tabla buenisimo gracias
nigger
enero 7, 2009
una pregunta, esto en ke parte del codigo se mete????
dentro del jTable o en donde?
VegaNet
enero 12, 2009
Oe yo lo implemente con la clase que generaliza el JTable pero el problema es q demora mucho en reportar los datos, son aprox 10000 registros, es lento debido al num d reg o es q habre hecho algo mal?
Claudia
enero 22, 2009
Hola, esta muy bien explicado y si me sirvio mucho asi k muchas grax por la ayuda.
freddy
marzo 31, 2009
muchisimas gracias que sencillo pero efectivo….. me sirvio mucho
edith flores
junio 17, 2009
buenisimo me sirvio mucho, pero tengo una duda como hago si kiero agregar datos desde una tabla y que se pueda guardar en una base de datos. gracias
yoko
febrero 27, 2010
mire el mismo mas detallado si no entendio este ………………….http://pshycodelic.blogspot.com/2009/03/meter-un-resultset-en-jtable.html
Enmanuel
marzo 19, 2010
Buenisimo, en verdad me ayudo, lo que quiero ahora es colocar por lo menos en cada fila verdad como una imagen donde yo le de click y cada persona que aparesca de la base de datos la pueda modificar: algo asi : nombre-apellido————imagen:modificar datos, creo que alli tendria que trabajar con los eventos del raton verdad??
pablo
marzo 30, 2010
che esta bueno la info, pero tengo un problema no me muestra la tabla cuando lo ejecutoo como puedo solucionar esto, esto es lo q hagoo: me compila bien por no me muestra la tabla por pantalla si alguien puede ayudarmee mil gracias
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conexion = (Connection) DriverManager.getConnection(“jdbc:mysql://localhost/alumnos”, “root”, “123″);
Statement s = (Statement) conexion.createStatement();
ResultSet rs = s.executeQuery(“select * from alum”);
//aca cramos un jtable
DefaultTableModel modelo = new DefaultTableModel();
// Creamos las columnas.
modelo.addColumn(“Nombre”);
modelo.addColumn(“Apellido”);
// Bucle para cada resultado en la consulta
while (rs.next())
{
// Se crea un array que será una de las filas de la tabla.
Object [] fila = new Object[2]; // Hay 2 columnas en la tabla
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
for (int i=0;i<2;i++)
fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
JTable tabla = new JTable(modelo);
tabla.setModel(modelo);
JScrollPane scroll = new JScrollPane();
scroll.setViewportView(tabla);
} catch (SQLException ex) {
Logger.getLogger(planilla2.class.getName()).log(Level.SEVERE, null, ex);
}
}
ciberex
agosto 27, 2010
Pablo , no soy un experto pero deberias de poner el scroll en un panel y el panel en un frame y mostrar el frame, creo que asi es como funciona
cristian mejia
marzo 30, 2011
Buen dia… tengo una problema con el JTable,, quiero meter en una variable un valor que yo seleccione del jtable..
José Miguel
junio 14, 2011
En donde puedo conseguir ese control personalizado de la jtable, esta muy bueno.
Juan
noviembre 12, 2011
Esta muy buena gracias
Gleiston
noviembre 21, 2011
pablo.
Arreglaste tu problema con lo que te dejo ciberex?
Luis Fernando Mosquera
marzo 4, 2012
Como hago para navegar en el jtable con botones, es decir SIGUIENTE – ANTERIOR – ULTIMO PRIMERO y SQL??
solisesinc
marzo 14, 2012
hola amigo… tendras algun ejemplo para realizar la paginacion del jtable asi como lo tienes en la imagen que sta al principio del post… yo necesito hacer eso pero no he encontrado nada al respecto ojala puedas ayudarme