Hola a todos, como lo comente en la entrada de mostrar resultado SQL en un JcomboBox, en esta oportunidad vamos a ver como mostrar el resultado de nuestra consulta sql en el componente JTable de java.
Bueno primero que todo para el ejemplo debemos sabler que hay que tener instalado y configurado MySQL en el momento yo lo tengo configurado con el usuario: root y clave: root08, tu lo configuras segun tu configuracion de MySQL para no tener inconvenientes con la prueba, la base de datos que tenemos que crear se llama conexmysql y luego descargamos la base de datos conexmysql ya con registro llenos para poder apreciar los datos en el JTable y ejecutamos un sql con el contenido del archivo y listo tenemos la base llena y lista para la consulta.
Depues descargamos el proyecto completo que se llama JTable que ya tiene el driver mysql asociado.
Aqui muestro el contenido del boton buscar de la ventana SQL donde se encuenta la conexion con mysql :
Y declaramos las variables en la parte publica del documento asi:
//tabla modelo:
public static DefaultTableModel modelo = new DefaultTableModel();
//filas
Object[] filas;
Deja tu comentario o agradecimiento...
Que tal Amigo... Muchas Gracias por Tu Publicación... Me ayudo mucho...Pero tengo un problema y es que solo me muestra el ultimo registro que tengo en mi base de datos...No se si me pudieras Ayudar...
ResponderEliminarGRAcias!!
Hola moises si quieres puesdes publicar todo o parte de tu codigo para tener una mejor idea de lo que esta ocurriendo, si embargo lo que puede estar ocurriendo es esto que el ciclo for no esta contando correctamente las columnas, verifica este codigo
ResponderEliminarfor (int i=0;i<modelo.getColumnCount();i++){
filas[i] = rs.getObject(i+1);
}
//escribo las filas del resultado SQL//
modelo.addRow(filas);
jtResultado.setModel(modelo);
me da error en jtResultado.setModel(modelo);
ResponderEliminardice que jtResultado no existe.
espero me orientes
Hola jorge, Lo que ocurre es que yo le cambié el nombre a la variable del componente JTable y le coloque jtResultado esto lo puedes hacer cono click derecho sobre el componente y escoges la opción "Change variable name" y listo.. No olvides descargar la base de datos "conexmysql " y subirla a MySQL. Espero te ayude me comentas...
ResponderEliminarMuchas Gracias, hace tiempo necesitaba una orientación, lo que yo estoy haciendo es con un conector para oracle 10g.
ResponderEliminarSaludos
Ariel
excelente ayuda muy bien gracias
ResponderEliminaramigo de da error al leer la base de datos q crees q pueda ser. gracias
ResponderEliminarHola victor, partamos del hecho que no haz hecho modificaciones al código del ejemplo todavia, tendríamos que mirar que la base de datos este creada corectamente con el nombre biller, tambien que el sql de MySQl la halla cargado bien, por último verifica que tengas incluido en las librerias del proyecto el conector de MySQL.
ResponderEliminarEspero te ayude me comentas...
Gracias estuve buscando hace un monton un buen tutorial de consultas en jtable! lo pruebo y cuento como me fue!
ResponderEliminargracias otra vez!
hola esta muy bueno tu codigo pero me marca un error en esta declaracion
ResponderEliminarsuper(parent, modal);
porke? graxias
Hola julio cesar, esto es un error de la clase de JDialogForm (cambio de nombre, propiedades, o escibiste código dentro de los métodos reservados de éste) o en su defecto si memtiste mano al codigo puede ser un error de sintaxis en ese método. revisa estas dos cosas o descargate el proyecto nuevamente.
EliminarSaludos,
Hola quería saber cómo paginar un jtable porque tengo un listado:
ResponderEliminarprivate void cargarTablaPersona()
{
modelo=(DefaultTableModel)tablaPersona.getModel();
modelo.setRowCount(0);
objutilitario.cargarColumnasTablaPersona(this.tablaPersona,anchos);
for(Persona objp : ControladorPersona.getInstance().devolverDatos().values())
{
Object[] row={objp.getNumero(),objp.getCI(),objp.getNombre(),objp.getApellido(),objp.getDirNombre()+""+ objp.getDirNumero(),objp.convertirGCaString()};
modelo.addRow(row);
}
tablaPersona.setModel(modelo);
tablaPersona.setDefaultRenderer(Object.class,new Renderizador());
}
y tengo una clase Paginación:
package singletonbd.dominio.clases;
public class Paginacion
{
private int paginaActual;
private int registrosTotales;
private int registrosPorPagina;
public Paginacion()
{
}
public Paginacion(int paginaActual, int registrosTotales, int registrosPorPagina)
{
this.paginaActual = paginaActual;
this.registrosTotales = registrosTotales;
this.registrosPorPagina = registrosPorPagina;
}
public Paginacion(String paginaActual, int registrosTotales, int registrosPorPagina)
{
this.paginaActual = cogePaginaDeString(paginaActual);
this.registrosTotales = registrosTotales;
this.registrosPorPagina = registrosPorPagina;
}
public int getPaginaActual()
{
return paginaActual;
}
public void setPaginaActual(int paginaActual)
{
this.paginaActual = paginaActual;
}
public int getRegistrosPorPagina()
{
return registrosPorPagina;
}
public void setRegistrosPorPagina(int registrosPorPagina)
{
this.registrosPorPagina = registrosPorPagina;
}
public int getRegistrosTotales()
{
return registrosTotales;
}
public void setRegistrosTotales(int registrosTotales)
{
this.registrosTotales = registrosTotales;
}
public int getTotalPaginas()
{
return (int) (Math.ceil((registrosTotales-1) / registrosPorPagina)+1);
}
public boolean getExisteSiguiente()
{
if (paginaActual >= this.getTotalPaginas())
{
return false;
}
return true;
}
public boolean getExisteAnterior()
{
if (paginaActual <= 1)
{
return false;
}
return true;
}
public int getPaginaSiguiente()
{
return getExisteSiguiente() ? paginaActual + 1 : paginaActual;
}
public int getPaginaAnterior()
{
return getExisteAnterior() ? paginaActual - 1 : paginaActual;
}
public int offset()
{
return (int) ((paginaActual - 1) * registrosPorPagina);
}
public int limit()
{
return registrosPorPagina;
}
public static int cogePaginaDeString(String pag) {
int pagina = 1;
if (pag != null)
{
try {
pagina = Integer.parseInt(pag);
if (pagina < 1)
{
pagina = 1;
}
} catch (NumberFormatException ex)
{
pagina = 1;
}
}
return pagina;
}
}
pero no sé cómo paginar el listado porque quiero que un botón al hacer click me muestre las primeras 10 filas, en otro botón las 10 filas anteriores, en otro las siguientes 10 filas y en otro las últimas 10 filas.
Por favor sí podés ayudarme te lo agradezco.
Hola Juandy, Prueba con lo siguiente utilizando LIMIT de SQL:
Eliminarx -> representa el origen desde donde se muestran los registros
y -> representa cuantos registrso se muestran
Entonces quedaria:
LIMIT 0,5 (siginifica que saca los resultados del 0 al 4, empezando desd el 0)
LIMIT 10,5 (significa que saca los resultados del 10 al 14, empezando desde el 10)
Al ser todo consultas sencillas (SELECT) al final les añadia LIMIT, asi que he ido guardando la ultima consulta realizada en un String y con el replaceAll() le he ido reemplazando esa parte de texto por uno nuevo con una variable que le incrementaba o quitaba mas menos 5 (ya que los he ido sacando de 5 en 5). Asi de sencillo.
Espero que te ayude...
No entiendo como pides agradecimientos.
ResponderEliminarSi ni siquiera esta completo el for...
Así vamos.
Primero que todo, no me parece que informes un error en el post de esta forma, por otro lado Se nota que nunca has utilizado un blog y no sabes que en ocasiones omite partes de código al momento de pegarlo en la entrada, arriba existe un botón DESCARGAR para que tengas mi programa con el código para que no tengas que pensar mucho...
Eliminaroye mi estimado no te habras equivocado al subir la bd,
Eliminarbueno el el scrip que subes falta la tabla bitacora..
Hola pedro tienes razón no se pasó al copiar el script que es incorrecto, te informo que ya está restaurado el link con el archivo .SQL comprimido en .ZIP.
Eliminar-- phpMyAdmin SQL Dump
ResponderEliminar-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 29-03-2013 a las 22:29:58
-- Versión del servidor: 5.0.45
-- Versión de PHP: 5.2.3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de datos: `conexmysql`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `bitacora`
--
CREATE TABLE `bitacora` (
`codbitacora` int(20) NOT NULL auto_increment COMMENT 'id',
`usuario` varchar(50) NOT NULL default 'nulo',
`fecha` varchar(30) NOT NULL default 'nulo',
`hora` varchar(30) NOT NULL default 'nulo',
`accion` varchar(100) NOT NULL default 'nulo',
`ip` varchar(30) NOT NULL default '0.0.0.0',
`pc` varchar(50) NOT NULL default 'nulo',
`borrado` varchar(2) NOT NULL default '0',
PRIMARY KEY (`codbitacora`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=126 ;
--
-- Volcar la base de datos para la tabla `bitacora`
--
INSERT INTO `bitacora` VALUES (1, 'Administrador', '2010-12-13', '13:47:27', 'inicio sesion', '127.0.0.1', 'activate.adobe.com', '0');
INSERT INTO `bitacora` VALUES (2, 'demostracion', '2010-12-13', '13:53:01', 'inicio sesion', '127.0.0.1', 'activate.adobe.com', '0');
INSERT INTO `bitacora` VALUES (3, 'Administrador', '2010-12-14', '19:32:06', 'inicio sesion', '127.0.0.1', 'activate.adobe.com', '0');
Jeison Nisperuza
ResponderEliminarahora si mi estimado si esta funcionando el programita.. voy a analizar bien tu codigo para reutilizar
Deimos Phobus
ResponderEliminarBuen aporte, muchas gracias!!!
Gracias por tu aporte
ResponderEliminarTe deseo muchos Exitos
Gracias por tu aporte
ResponderEliminarTe deseo muchos Exitos
buen aporte caballero dado que me ayudo a dar respuesta a mis dudas con el manejo de JTABLE
ResponderEliminarsaludos