Bonjour à tous,
J'ai effectué une requete dans ma base de données qui me renvoie un vecteur contenant 300.000 objets. Ces objets sont des instances de la classe Element, que j'ai créé.
Bref, le problème, c'est que ça met un temps fou à parcourir mon vecteur. En gros je veux récupérer chaque objet, pour récupérer son id, et le stocker dans un string que je vais concaténer, pour ensuite m'en servir dans une requete DELETE.
Voici mon code :
Actuellement, je parcourt 30.000 ligne en 2minutes ... des idées pour optimiser le tout ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // je récupère dans un vecteur les objets que j'ai sélectionnés dans une liste à l'écran Vector selection = getElementListPanel().getObjetsSeleted(); // je trim le vecteur histoire d'ajuster sa taille au contenu réel selection.trimToSize(); // je change le curseur en sablier setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); // je récupère la taille actuel du vecteur ( 300.000 environ ) int taille = selection.size(); // tant qu'on a pas atteint la taille, on boucle for ( i = 0; i < taille; i++) { // on concatène un string, qui sera la clause IN ( xx, xx, xx ... ) d'une futur requete clauseIn += "'"+((Element) selection.get(i)).getCode()+"',"; }
J'ai essayer avec un enume de mon vecteur, mais c'est tout aussi long
merci d'avance,
a+
Partager