jueves, noviembre 25, 2010

Java - LLenar un JTable con ResultSet


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

1. Entorno


  • JDK 6 Update 21
  • Netbeans 6.9.1
  • MySQL 5.1.

2. Introducción


Lo que se desea demostrar en este tutorial es como mostrar los datos de una consulta en un JTable. Haciendo uso de la clase ResultSetMetaData que nos brinda la información de una tabla de la base de datos y la clase ResultSet que nos devuelve la data producto de una consulta hacia la base de datos.

3. Desarrollo


3.1. Crear el proyecto

Primero debemos de crear un proyecto en Netbeans para eso nos vamos a "File->New Project" y seleccionamos la opción de crear un "Java Application"














Y como nombre al proyecto le ponemos "LlenarJTable"














Al proyecto debemos de agregar un formulario (JFrameForm) que lo llamaremos "frmLlenarJtable". Para hacemos clic derecho en el paquete que se llama "llenarjtable" de ahí seleccionamos New y elegimos "JFrame Form"

















3.2. Diseño del Formulario

Debemos de diseñar el siguiente formulario:


















Donde:

El JTextBox: Recibe el nombre de txtQuery
El JTable: Recibe el nombre de jtQuery
El JButton: Recibe el nombre de btnConsultar

3.3. Crear base de datos en MySQL

Debemos de crear una base de datos en MySQL. A la base de la llamaremos "bdproductos" y también crearemos una tabla que se llamara "producto"

















3.4. Codificando el action del botón "Consultar"

Debemos de codificar la acción del botón "Consultar" que va a llenar al JTable con la data producto de la consulta que vamos a hacer a la base de datos bdproductos que esta en MySQL. No olvidar agregar el conector al Netbeans para poder comunicarnos con MySQL.























Para ir a la Action del botón debemos hacer clic derecho en el botón de ahí seleccionamos Events, luego Action y finalmente ActionPerformed















Y luego dentro de ese evento ponemos el siguiente codigo

try {
 //Para establecer el modelo al JTable
 DefaultTableModel modelo = new DefaultTableModel();
 this.jtQuery.setModel(modelo);
 //Para conectarnos a nuestra base de datos
 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
 Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdproductos", "usuario", "clave");
 //Para ejecutar la consulta
 Statement s = conexion.createStatement();
 //Ejecutamos la consulta que escribimos en la caja de texto
 //y los datos lo almacenamos en un ResultSet
 ResultSet rs = s.executeQuery(txtQuery.getText());
 //Obteniendo la informacion de las columnas que estan siendo consultadas
 ResultSetMetaData rsMd = rs.getMetaData();
 //La cantidad de columnas que tiene la consulta
 int cantidadColumnas = rsMd.getColumnCount();
 //Establecer como cabezeras el nombre de las colimnas
 for (int i = 1; i <= cantidadColumnas; i++) {
  modelo.addColumn(rsMd.getColumnLabel(i));
 }
 //Creando las filas para el JTable
 while (rs.next()) {
  Object[] fila = new Object[cantidadColumnas];
  for (int i = 0; i < cantidadColumnas; i++) {
    fila[i]=rs.getObject(i+1);
  }
  modelo.addRow(fila);
 }
 rs.close();
 conexion.close();
} catch (Exception ex) {
 ex.printStackTrace();
}

4. Ejemplo de la aplicación

Sin poner etiquetas a la consulta
































Con etiquetas a la consulta













43 comentarios:

Tengo 3 días de haber comenzado a estudiar java, y nadaba buscando esto por varios lados.

Gracias.

Espero que te sea de mucha ayuda, acá en el blog encontraras diferentes ejemplo sobre java, php, vb.net, c++ y c# ... Que espero que te sirva a ti y varios amigos que desarrollen software. Saludos

Gracias por el aporte.. me gustaria saber como puedo llenar el Jtable.. cuando el Jframe se ejecute utilizando DAO y VO

Para llenar un JTable al momento de cargar el frame tendrías que poner el método en el constructor de la clase. Saludos

Despues de leer otros blog's sobre el mismo tema, alfin uno que sirve, muachas gracias.

Muchas gracias por los saludos

Mu buen aporte, no hay mucho en la web tambien explicado y desarrollado con imagenes en netbeans, mil gracias..

Gracias por los saludos!!!!

Excelente, me gustaria saber como camputo un cambio sobre el Jtable y actualizar la base de datos con dicho cambio(s).

Saludos!!!

Es que todo eso lo guardas en un resultset y luego puedes modificar ese mismo resulset :)

excelente me sirvio para un proyecto de mi escuela

Que bueno que te haya servido :D

Muchas gracias por compartir tus conocimientos y explicarlo de esta forma,es rápida y eficiente tu solución ;)

gracias mi hermano por esta gran informacion me sirve de mucho para mis aplicaciones muy buenas las imagenes descriptivas

Muy bueno hermano te felicito. Estoy migrando de .net a Java y esto es justamente lo que necesito. Si puede colocar un ejemplo con jsp te lo agardeceria.

rifado valedor, me ayudo bastante muchas gracias por compartir estas cosas!

Que bueno que les sirva . Gracias por visitarnos.

Excelente..Muchas, muchas gracias...despues de haber intentado un sin fin de cosas al fin pude obtener resultados, Saludos

Que bueno, sigue visitandonos

Muchisimas gracias llevaba bastante tiempo buscando esto y me srivio con el phpMyAdmin muy bien!!!

muy buena explicacion me ayudo bastante, seria bueno que pusiera uno donde se pueda ver como exportar a excel o csv con el jtable, muchisimas gracias

muy bueno carnal me sirvio bastante sigue subiendo mas chido...

un gran aporte...muchas gracias

Muy buen tutorial amigo..!! Gracias... No podia hacerlo..!!!

Buen tuto!!! amigo... MUCHAS GRACIAS!!!

:o men... despues de buscar.. por dokier.. y no encontrar nada coherente este es el mejor post que eh visto... lo malo es q kisiera saber como hacer llamando a una vista o procedimiento almacenado en mysql y no escribiendo la consulta en un JTextField.. :/ pero.. = grcias.. men.. chvr.. el post (Y)

:o muy buen post men despues de indagar por varias web nada coherente hasta q encontre tu post .. lo malo es q kisiera saber como hacerlo pero llamando a una vista o procedimientos alamcenado en mysql... y no escribiendo en un JTextField ;) pero..0 muchas gracias.. men.. :)

MUCHISIMAS GRACIAS POR PUBLICARLO...NO TENES IDEA DE LOS DOLORES DE CABEZA QUE TUVE CON ESTO :)..estoy con mi tesis de analista y falta de experiencia se hizo notar jaja EXITOS!!!!

No hay problema Verónica, estamos para apoyarte =D

muchisimas Gracias! me sirvio de mucha ayuda! hace como 15 dias que busco un ejemplo asi!

gracias amigo me sirvio de mucho

Wow it really Works!!! Thanks XD

Gracias por el aporte, me ayudo mucho saludos!

Gracias por el aporte, me sirvió mucho saludos!

Gracias por el aporte, me sirvió mucho saludos!

gracias fue de mucha ayuda

Muchisimas gracias en un principio no me sirvió (no se por que) pero despues que deshice todos los cambios y regrese a un puntoo inicial me funcionó a la perfeccion.

exelente aporte me ayudo muchisimo despues de haber pasado una semana entera tratando de hacerlo a mi manera y no poder intente con tu codigo y vuala me alo a la primera de verdad mucha gracias si en alg te puedo ayudar en el futuro cuenta con migo calro 100pre y cuando pueda y sepa claro esta :-)

Gracias amigo.
Saludos.

Hоla,
Es verdad quue es llɑ unica vez que he entrado el blog y
quiero comentar qquе no esta mal y creo que vendгe con frecսencia por estos lɑres.


Un saluԀo!

Mas info enn Jose

Gracias por el aporte, me sirvió muchisismo