Tengo un programa echo con las opciones del entrono grafico de netbeans, y lo que necesito es que al pulsar en un boton se me cargen todos los datos que tengo en la BD de clientes en el JTable. El codigo es el siguiente:
Código PHP:
void leerbd(String consulta) throws ClassNotFoundException, SQLException{
BuscarCliente bc=new BuscarCliente();
ResultSet rs = null;
String codigo = null;
Connection cn;
Statement st;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:tienda");
st = cn.createStatement();
rs=st.executeQuery(consulta);
ResultSetMetaData metaDatos = rs.getMetaData();
//RELLENAR COLLUMNAS
// Se obtiene el número de columnas.
int numeroColumnas = metaDatos.getColumnCount();
DefaultTableModel modelo = new DefaultTableModel();
// Se crea un array de etiquetas para rellenar
Object[] etiquetas = new Object[numeroColumnas];
// Se obtiene cada una de las etiquetas para cada columna
for (int i = 0; i < numeroColumnas; i++){
// Nuevamente, para ResultSetMetaData la primera columna es la 1.
etiquetas[i] = metaDatos.getColumnLabel(i + 1);
System.out.println(etiquetas[i]);
}
modelo.setColumnIdentifiers(etiquetas);
//RELLENAR FILAS
// 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[numeroColumnas];
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
for (int i=0;i<numeroColumnas;i++){
fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
System.out.println(fila[i]);
}
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
rs.close();
bc.tablaclientes.setModel(modelo);
}
Cuando ejecuto este codigo, hago varios prints para ver si esta cogiendo bien las etiketas de las columnas y los datos que tiene que insertar en las filas, y el resultado es este:
run:
id_Cliente
nombre
apellidos
dni
telefono
1
isabel
martinez fulleda
15418669K
600894221
2
ana
martinez
435435435K
586094586
BUILD SUCCESSFUL (total time: 12 seconds)
por lo tanto la consulta está bien echa, lo que no entiendo es porque no me pinta los datos en la tabla...
La consulta que le paso es esta:
consulta = "SELECT id_Cliente, nombre, apellidos, dni, telefono FROM CLIENTE;";
Si me pueden ayudar lo agradeceria mucho ya que tengo que entregar el programa el jueves en clase y si no consigo hacer esto, no puedo seguir porque toda mi aplicacion funciona con tablas.
Gracias de antemano y un saludo ; )