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 :
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()+"',";
        }
Actuellement, je parcourt 30.000 ligne en 2minutes ... des idées pour optimiser le tout ?
J'ai essayer avec un enume de mon vecteur, mais c'est tout aussi long

merci d'avance,

a+