2016-08-07 56 views
0

Ich habe eine Datenbank mit vielen Datenbenutzern und haben eine Methode in SOAP, um mir eine ArrayList von all diesen Benutzern und Liste in einem ListView in Android, aber das Problem ist, was er mir alle Daten sagt, wenn ich 1000 Datensätze habe in der Bank, er wird mir 1000 senden, wenn ich 10.000 habe, wird er 10.000 senden usw., dies verursacht den Fehler in der Anwendung und es dauert zu lange, um alle zu laden ... haben Sie eine Möglichkeit, diese Anfrage zu begrenzen? ihn von 10 bis 10 Benutzern zu senden und nur wenn gefragt?Wie sende ich eine ArrayList des Benutzers für Teile SOAP?

Hier sind mein Objekt DAO

public ArrayList<Estudio> buscarTodosEstudios(){ 
    ArrayList<Estudio> lista = new ArrayList<Estudio>(); 

    try{ 
     Connection conn = ConectaMySql.obtemConexao(); 

     String queryInserir = "SELECT * FROM estudios WHERE STATUS_ESTUDIO = 'ATIVO'"; 

     PreparedStatement ppStm = conn.prepareStatement(queryInserir);   



     ResultSet rSet = ppStm.executeQuery(); 

     while(rSet.next()){ 
      Estudio est = new Estudio(); 

      est.setID_ESTUDIO(rSet.getInt(1)); 
      est.setRAZAO_SOCIAL_ESTUDIO(rSet.getString(2)); 
      est.setNOME_FANTASIA_ESTUDIO(rSet.getString(3)); 
      est.setCNPJ_ESTUDIO(rSet.getString(4)); 
      est.setLOGO_ESTUDIO(rSet.getBytes(5)); 
      est.setSENHA_ESTUDIO(rSet.getString(6)); 
      est.setESTADO_ESTUDIO(rSet.getString(7)); 
      est.setCIDADE_ESTUDIO(rSet.getString(8)); 
      est.setBAIRRO_ESTUDIO(rSet.getString(9)); 
      est.setRUA_ESTUDIO(rSet.getString(10)); 
      est.setCEP_ESTUDIO(rSet.getString(11)); 
      est.setCOMPLEMENTO_ESTUDIO(rSet.getString(12)); 
      est.setTELEFONE_ESTUDIO(rSet.getString(13)); 
      est.setEMAIL_ESTUDIO(rSet.getString(14)); 
      est.setSITE_ESTUDIO(rSet.getString(15)); 
      est.setSALDO_ESTUDIO(rSet.getDouble(16)); 
      est.setSALDO_PENDENTE_ESTUDIO(rSet.getDouble(17)); 
      est.setSALDO_BLOQUEADO_ESTUDIO(rSet.getDouble(18)); 
      est.setCONTA_BANCARIA_ESTUDIO(rSet.getString(19)); 
      est.setSTATUS_ESTUDIO(rSet.getString(20)); 


      lista.add(est); 
      } 

     conn.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return lista;  
} 

Antwort

0

eine Grenze in Ihrem queryInserir String Set, etwa so:

String queryInserir = "SELECT * FROM estudios WHERE STATUS_ESTUDIO = 'ATIVO' LIMIT yourLimit"; 
+0

Aber wie Server wird wissen, dass die Anwendung der ersten 10 Benutzer angefordert und anrufen möge, die nächsten 10 beginnend von der vorherigen Zählung? ZB haben 20 Benutzer in der Datenbank registriert, ich drücke die ersten 10, und jetzt muss ich die 11, 12, 13 drücken ... –