IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Tri dans ArrayList ou tri SQL?


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Points : 66
    Points
    66
    Par défaut Tri dans ArrayList ou tri SQL?
    Bonjour,

    voilà j'ai une application classique JSP/Servlet sous Tomcat connecté à une base Mysql (mais le SGBD peut être différent).

    Je récupère des données depuis la base et les affiche sous forme de tableau. Les données sont récupérées dans un ArrayList. Admettons par exemple que je récupère les champs "Auteur","Date", et "Titre" de la base. Mon ArrayList sera de la forme suivante :

    ["Jacques","10/02/06","Java et moi","Francis","25/05/05",Contrats d'embauche",.......]

    Mon tableau dispose d'une ligne entête ayant pour chaque colonne le nom "Auteur", "Date" et "Titre". En cliquant sur une de ces trois entêtes, les résultats sont triés en fonction du choix. Actuellement, je relance la requête SQL mais avec un ORDER BY sur le critère choisi et récupère les données dans mon ArrayList.
    J'aurais aimé savoir si il y avait une méthode permettant de trier les ArrayList sur un numéro de champ Modulo 2 par exemple (pour la date).
    En gros, si je veux trier sur le champ auteur, y a t il une méthode qui me permette de le faire depuis mon ArrayList ou dois je passer par SQL et son Order By?

    Je pense que les deux methodes sont faisables, mais laquelle me conseillez vous?

    En fait c'est surtout parce que le temps de requête peut être long (renvoi de 50 000 tuples) et c'etait pour éviter à l'utilisateur d'avoir à relancer cette requête.
    Merci d'avance pour vos réponses

  2. #2
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Tu peux trier facilement les arraylist, en renseignant quel champ tu dois trier.
    J'ai pas le code ici, mais je te retrouve ça ce soir si j'ai le temps.
    C'est rapide et evite de requeter la base.
    En attendant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List maList =new ArrayList();
    ...
    Collections.sort(maList );
    Te fait un tri alpha pour une liste de string.
    Cherche dans cette direction.

  3. #3
    zl
    zl est déconnecté
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Points : 90
    Points
    90
    Par défaut
    L'idéal c'est d'ajouter un SORT BY dans tes requetes SQL si tu ne vas que la manière de trier tes données soit dynamique.

    Zl.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonsoir,

    fais une recherche sur le displaytag.

    S'il ne te convient pas, tu peux en reprendre le principe, à savoir implémenter un Comparator qui prend comme paramètre une chaîne (nom d'un attribut de classe) et qui via l'api Reflection va définir une relation d'ordre "dynamique".

    Ensuite, un petit Collections.sort(maListe,monComparator); par exemple

    Eric

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    les display tags sont très utiles .

    cependant ca limite sur la présentaion, il faut maitriser les display.properties .

    http://displaytag.sourceforge.net/11/tut_basic.html

    struts-menus est marrant aussi , un peu à maitriser.

    bonne chance

Discussions similaires

  1. erreur avec try dans un autre try
    Par dadal56 dans le forum JDBC
    Réponses: 0
    Dernier message: 30/04/2010, 00h27
  2. Récupération de données en SQL et tri dans une liste
    Par skurty dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 24/03/2010, 23h55
  3. Colle sur un tri dans une requête linq to sql
    Par boby62423 dans le forum Linq
    Réponses: 5
    Dernier message: 18/03/2009, 10h01
  4. [SQL] Tri dans une requête
    Par treflor dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/08/2007, 17h57
  5. Tri dans base de données SQL
    Par delavega dans le forum ASP
    Réponses: 8
    Dernier message: 19/07/2007, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo