Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Recuperar datos entre tablas

Estas en el tema de Recuperar datos entre tablas en el foro de Java en Foros del Web. Buenas les ecribo para ver si me pueden resolver una duda tengo que sacar de de una base de datos varios valores teniendo una tabla ...
  #1 (permalink)  
Antiguo 20/03/2013, 02:55
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 0
Recuperar datos entre tablas

Buenas les ecribo para ver si me pueden resolver una duda tengo que sacar de de una base de datos varios valores teniendo una tabla de ella tengo que recuperar valores de otra mediantes sus datos y meterlos en un arraylist pero el problema es que solo me pasa un objeto y no todos, el codigo que tengo es este
Código Javascript:
Ver original
  1. public ArrayList<ventas> getventass(){
  2.         ArrayList<ventas> ventas= null;
  3.         Connection cn= null;
  4.         Statement st =null;
  5.         ResultSet rs = null;
  6.         int product = 0, unidades = 0,precio = 0;
  7.         String pass = null, producto = null,usuario = null;
  8.        
  9.         try{
  10.            
  11.             cn=operaciones();
  12.             st=cn.createStatement();
  13.             String tsl = "select * from ventas";
  14.             rs=st.executeQuery(tsl);
  15.             ventas = new ArrayList<ventas>();
  16.            
  17.             while (rs.next()){
  18.                product = rs.getInt("idproductos");
  19.                pass = rs.getString("passwordcliente");
  20.                unidades = rs.getInt("unidades");
  21.            
  22.             String tsl1 = "select * from productos where idproducto ="+product;
  23.             rs=st.executeQuery(tsl1);
  24.             while(rs.next()){
  25.                 producto = rs.getString("producto");
  26.                 precio = rs.getInt("precio");
  27.             }    
  28.             String tsl2="select usuario from clientes where password = '"+pass+"'";
  29.             rs=st.executeQuery(tsl2);
  30.             while(rs.next()){
  31.                 usuario=rs.getString("usuario");
  32.             }
  33.            
  34.              ventas v = new ventas(producto, usuario, unidades, precio,null);
  35.         ventas.add(v);
  36.        
  37.        
  38.             }
  39.             cn.close();
  40.         }
  41.        
  42.         catch(Exception e){e.printStackTrace();}
  43.        
  44.                  return ventas;
  45.        
  46.     }
el problema esque solo entra uno valor en vez de todos los que hay en tabla ventas, por cierto lo tngo que hacer sin persistencias
  #2 (permalink)  
Antiguo 20/03/2013, 09:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: Recuperar datos entre tablas

sólo entra un valor en "ventas" por como tienes los bucles, fijate:

Código:
            while (rs.next()){
               product = rs.getInt("idproductos");
               pass = rs.getString("passwordcliente");
               unidades = rs.getInt("unidades");
            }

imagina que hay 7 elementos en rs, con la ejecución 1 das valores, con la ejecución 2 "machacas" lso valores de 1, con la ejecución 3 "machacas" los valores de 2.... y así hasta la 7 que ya tienes los valores.


Total que al hacer la inserción en ventas haces sólo los valores del último resultado.

Todas las búsquedas en la base de datos tienen que ir dentro de este primer rs.next(), y también el .add.

Saludos

Etiquetas: javascript, select, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:36.