elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  jTable y regitros de Bases de Datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: jTable y regitros de Bases de Datos  (Leído 1,975 veces)
puntoBat

Desconectado Desconectado

Mensajes: 18


Ver Perfil
jTable y regitros de Bases de Datos
« en: 23 Mayo 2014, 13:51 pm »

ola muy buenas, tengo un problema y estoy atascado en mi codigo.

La cuestion es rellenar un jTable que tiene 5 columnas desde una base de datos, facil no!!
el problema es que tengo que cojer los datos de 3 tablas distintas y poner sus datos en distintas columnas,

Comento el codigo y os lo explico un poco

mi codigo es este:

Código:
try {
       
        ps = cn.prepareStatement(producttab);  //Conexion
        rs= ps.executeQuery(producttab);        //Resultset
   
    int numFilas = 0;
    int numColumnas = rs.getMetaData().getColumnCount(); 
               
    while(rs.next()) {
        numFilas++;
    }
   
    filas = new Object [numFilas] [numColumnas]; 
   
    rs.beforeFirst();
   
   
    int contadorTmp = 0;
   
    while (rs.next()) {
   
 //aqui rellenamos el objeto fila el cual rellenara la tabla, el contador Tmp pasara por todas las filas y el siguientenumero seran las columnas de nuestro jtable el rs.String() se enecarga de sacar el dato de la columna que le indiquemos, este caso el 19 y asignarlo a la posicion de fila[][]
 
    filas[contadorTmp][0] = rs.getString(19);   
                                                                   
    filas[contadorTmp][2] = rs.getString(14);
                                                               
    filas[contadorTmp][4] = rs.getString(4);
 
    System.out.println("ref,nom,prec"+filas);
    contadorTmp++;
    }
    ps.close();
    rs.close();
   
//ahora rellenaremos la columna 1 del jTable, estos datos estan en otra tabla de nuestra base de datos, por lo que el rs o resultset hay que cambiarle la direccion sql de la tabla donde estara.   
   
    ps = cn.prepareStatement(lang);               
    rs = ps.executeQuery(lang);
   
   
    contadorTmp = 0;
   
    while(rs.next()) {
   
   
    filas[contadorTmp][1] = rs.getString(10);  //aqui esta el error
   
    contadorTmp++;
    System.out.println("nombre articulo"+filas);
    }


El error que me sale es: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 38

Gracias de antemano.
PD:Si hubiera que modificar todo el codigo no me importaria.


En línea

Migugami

Desconectado Desconectado

Mensajes: 22


Systems Analyst


Ver Perfil
Re: jTable y regitros de Bases de Datos
« Respuesta #1 en: 23 Mayo 2014, 16:06 pm »

ArrayIndexOutOfBoundsException lo lanza la máquina virtual cuando se intenta acceder a un índice inexistente en un array. Si te fijas en el stacktrace, que es el rastreo de pila de tu aplicación, te mostrará la línea en donde ha ocurrido la excepción y nada más tienes que indentificar el fallo y corregirlo.


En línea

puntoBat

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: jTable y regitros de Bases de Datos
« Respuesta #2 en: 23 Mayo 2014, 17:51 pm »

ArrayIndexOutOfBoundsException lo lanza la máquina virtual cuando se intenta acceder a un índice inexistente en un array. Si te fijas en el stacktrace, que es el rastreo de pila de tu aplicación, te mostrará la línea en donde ha ocurrido la excepción y nada más tienes que indentificar el fallo y corregirlo.

Vale he colocado un:
Código:
catch(ArrayIndexOutOfBoundsException e) { JOptionPane.ShowMessageDialog(null,e) }

Ahora me salta un error que dice: java.lang.ArrayIndexOutOfBoundsException:38

Pero por lo menos ya se cargan los datos de las dos tablas de mi base de datos
Muxax gracias, pero que significaria ese error o donde puedo mirarlo
« Última modificación: 23 Mayo 2014, 18:02 pm por puntoBat » En línea

puntoBat

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: jTable y regitros de Bases de Datos
« Respuesta #3 en: 23 Mayo 2014, 18:09 pm »

Vale ya me funciona, en el mensaje de error ponia el numero 38.

Este numero corresponde al numero de registros que tengo creados en mi base de datos, osea 38 articulos.
En algunas tablas donde tengo que sacar datos estos registros se repiten, por lo que el articulo aparece 3 veces repetido con y con el mismo id,

Solucion:

Filtrar la repeticion de los articulos o sus id´s.

Codigo:

Código:
ps= cn.prepareStatement(stockavailable);
    rs = ps.executeQuery(stockavailable);
    
    contadorTmp = 0;
    comparador = 0;
    
    while(rs.next()) {
    
    if(rs.getInt(2) != comparador) {   // es necesario comparar para que no se repitanl los id`s y con ello 3 nombres
    
    filas[contadorTmp][3]=rs.getString(6);
    
    contadorTmp++;
    comparador = rs.getInt(2); //Aquí le damos el valor del id que esta en la columna 2 de la base de datos, por lo que cuando vuelva a realizar el if sera igual que el siguiente id de la columna 2 y no dejara realizarlo, y pasara al siguiente id
    }

 }

Espero que le sirva a alguien y recuerden comentar su codigo para que vosotros mismos lo podáis entender en caso de fallos y problemas
    
  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
guardar datos en una BD y mostrarlos en un JTable
Java
yadergo 2 4,795 Último mensaje 5 Septiembre 2009, 19:07 pm
por sapito169
JTable y base de datos
Java
Xedrox 1 4,408 Último mensaje 14 Agosto 2011, 04:19 am
por Guerrerohgp
Ejercicio bases de datos mysql, manipulación de datos.
Bases de Datos
KaRaLLo 0 12,965 Último mensaje 14 Mayo 2012, 21:27 pm
por KaRaLLo
como puedo pasar los datos de un jtable a una base de datos access
Java
jclracing 1 6,142 Último mensaje 2 Julio 2013, 23:27 pm
por 1mpuls0
filtrar datos de un jtable en php
PHP
rafaechev 0 2,937 Último mensaje 16 Marzo 2015, 02:10 am
por rafaechev
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines