Bonjour,
Je réalise une application J2EE avec le framework Struts. Une des fonctionalités attendues est d'afficher un "top 30" des clients de la boïte selon deux critères choisis parmi 4 (volume et fréquence de livraison, etc.)
Les données se trouvent dans une table d'une base Oracle, avec un enregistrement par client.
J'hésite entre deux méthodes :
- filtrer les clients directement au niveau de la requête SQL, avec un
- coder une classe Java implémentant Comparator pour comparer 2 clients selon des critères donnés. Sélectionner tous les clients de la table (environ 3000), les placer dans un Vector et trier ce dernier grâce au Comparator. Afficher les 30 premiers éléments du Vector.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM latable WHERE rownum<=30 ... ORDER BY <critere 1>, <critere2>
Quelle solution vous paraît la plus efficace, sachant que les champs pris en compte comme critères de comparaison sont soit numériques, soit des varchar (ex : la fréquence de livraison est de la forme "10101" chaque chiffre représentant un jour de la semaine où le client est livré ou non) ?
Le tri d'Oracle sera-t-il plus performant qu'un tri en Java avec le Comparator ? Le fait que le Vector contienne 3000 objets Client pose-t-il un problème ?
Merci d'avance pour vos suggestions![]()
Partager