Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/04/2013, 03:55
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Mejor forma de devolver datos de consulta?

Lo que pasa es que no son siempre los mismos numeros de campos ni las mismas tablas. Tengo que hacer un método por cada consulta diferente? Quería hacer algo genérico.

Tengo hecho esto pero no me funciona (ya le di bastantes vueltas):
Código Java:
Ver original
  1. public List consulta(String consulta) {        
  2.         List l = null;
  3.         try {            
  4.             Statement stmt = this.conexion.createStatement() ;
  5.             ResultSet rs = stmt.executeQuery( "SELECT * FROM clientes" ) ;          
  6.             ResultSetMetaData md = rs.getMetaData();            
  7.             int columnas = md.getColumnCount();                          
  8.             while( rs.next() ) {                                    
  9.                 List fila = null;
  10.                 for (int i=1; i<=columnas; i++) {                    
  11.                     fila.add(rs.getString(i));                    
  12.                 }
  13.                 l.add(fila);                                
  14.             }            
  15.             rs.close() ;
  16.             stmt.close() ;            
  17.            } catch (SQLException ex) {
  18.                System.out.println(ex);                
  19.         }        
  20.         return l;
  21.     }

No veo el problema
Código Java:
Ver original
  1. Exception in thread "main" java.lang.NullPointerException
  2.     at conexiones.Dbase.consulta(Dbase.java:81)
  3.     at plataformas.Plataformas.main(Plataformas.java:21)
  4. Java Result: 1

Ahora me funciona. Pero no se si es correcto:
Código Java:
Ver original
  1. public List consulta(String consulta) {        
  2.         List l = new ArrayList();
  3.         try {            
  4.             Statement stmt = this.conexion.createStatement() ;
  5.             ResultSet rs = stmt.executeQuery(consulta) ;          
  6.             ResultSetMetaData md = rs.getMetaData();            
  7.             int columnas = md.getColumnCount();                    
  8.             while( rs.next() ) {                                                    
  9.                 List fila = new ArrayList();                
  10.                 for (int i=1; i<=columnas; i++) {                    
  11.                     fila.add(rs.getString(i));                    
  12.                 }
  13.                 l.add(fila);                                
  14.             }            
  15.             rs.close() ;
  16.             stmt.close() ;            
  17.            } catch (SQLException ex) {
  18.                System.out.println(ex);                
  19.         }        
  20.         return l;
  21.     }

Última edición por alyciashape; 04/04/2013 a las 04:12