Rechercher : dans
Par :

Tri SQL ou Java

Dernière réponse le 3 sep 2008 à 00:21:58 Virg62, le 27 aoû 2008 à 11:56:10 
 Signaler ce message aux modérateurs

Bonjour,

Dans ma table sql j'ai ces colonnes :
une CodeFrais1, une LibelleFrais1, une CodeFrais2 , une LibelleFrais2, une CodeFrais3, une LibelleFrais3, une CodeFrais4 et une LibelleFrais4.

Je peux avoir par exemple ->
CodeFrais1 = 16, CodeFrais2 = 11, CodeFrais3 = 82 et CodeFrais4 = 44.
LibelleFrais1 = a, LibelleFrais2 = b, LibelleFrais3 = c et LibelleFrais4 = d.

Comment je peux faire un trie pour avoir le CodeFrais dans l'ordre alphabétique et le libellé correspondant.

En gros je voudrai avoir dans mon affichage :
11 -> b
16 -> a
44 -> d
82 -> c
Ce que j'ai pour l'instant :
16 -> a
11 -> b
82 -> c
44 -> d

Voici mon code pour récupérer ces info mais sans le tri justement ->
for (int i = 1; i <= 4; i++)
{
ligne = new Ligne();
Object codeFrais = MethodUtils.invokeMethod(Fraisbean, "getCodeFrais" + Integer.toString(i), null);
Object libFrais = MethodUtils.invokeMethod(Fraisbean, "getLibelleFrais" + Integer.toString(i), null);
if(libFrais == null)
{
libFrais = "";
}
if (codeFrais != null)
{
ligne.addColonne(codeFrais);
ligne.addColonne(libFrais);
liste.addLigne(ligne);
}
}
return liste;

Merci, Virg

Configuration: Windows Vista
Firefox 3.0.1

Meilleures réponses pour « Tri SQL ou Java » dans :
SQL - Tri Voir Tri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...

1

knuckles, le 27 aoû 2008 à 12:03:41

Tu peux faire soit un tri bulle (un des meilleur tri) de ton tableau dont voici l'algo=>
http://interstices.info/encart.jsp?id=c_6973&encart=2&size=700,600

Soit quand tu fais ta requete SQL (si tu en fait une), tu fais un order by "le nom de la colonne"

Répondre à knuckles

2

Virg62, le 27 aoû 2008 à 12:17:28

Je ne peux pas faire d'ORDER BY puisque mes info sont sur la même ligne da ma table en SQL, c'est ça mon soucis justement. Toutes ces infos sont sur le même enregistrement. Ce qui, je pense, m'oblige a faire le tri en java...

Répondre à Virg62

3

arth, le 27 aoû 2008 à 12:39:58

Ah le tri bubulle ... :)
Le loup, solitaire et mystérieux.

Répondre à arth

4

knuckles, le 27 aoû 2008 à 13:18:39

OUI le tri bubulle, je crois que j'ai été traumatisé à l'IUT par ce truc là (à l'époque je comrpenais rien)

Enfin il existe d'autres algo de Tri mais celui reste le plus stable et efficace
Si tu souhaite voir les autres tris et leur avantages, le site que j'ai donnée plus haut est bien fouttu

Répondre à knuckles

5

arth, le 27 aoû 2008 à 18:40:35

Grave le tri à l'IUT ^^ :) encore que c'était pas le plus dur.
Le loup, solitaire et mystérieux.

Répondre à arth

6

Marco la baraque, le 27 aoû 2008 à 20:10:51

Hello,
Si tu ne peux pas faire de tri en SQL, il faut effectivement le faire en java.
Par contre, contrairement à ce que dit Knuckles, le tri par bulle, c'est pas le top (c'est même un des pire niveau complexité en temps).
Utilise plutôt le tri fusion qui est le top du top niveau rapidité (O(n log(n)) dans le pire des cas), ou le tri rapide (quick sort), qui en moyenne est le tri le plus efficace (en moyenne il est en O(n log(n)) et plus rapide que le tri fusion).

Bien cordialement,

Répondre à Marco la baraque

7

knuckles, le 2 sep 2008 à 17:48:40

Comme c'est expliqué sur ce site=>
http://interstices.info/jcms/c_6973/les-algorithmes-de-tri

Chacun des algos ont des avantages et des inconvénients
Le tri par fusion demande des ressources plus importantes car il faut créer un deuxieme tableau de la taille du premier
Le QuickSort, il faut pas se gourrer dans le choix du pivot sinon ça revient à faire un tri de base

C'est pour ça que je préfère le tri bulle, car il consomme moins de ressource et est un peu plus long

Enfin bon, vu la taille de son problème, je pense pas qu'il recherche la meilleur optimisation possible ;-)

Répondre à knuckles

8

 Marco la baraque, le 3 sep 2008 à 00:21:58

Salut Knuckles,
Effectivement, chaque algorithme de tri a ses propres forces et faiblesses. On t'a sensibilisé à la complexité en espace au cours de tes études, ce qui est une très bonne chose.
Selon moi (qui suis évidemment loin d'être une référence), ces notions de complexités en espace sont surtout utiles pour les systèmes embarqués, sur lesquels la gestion de la mémoire est primordiale.

En règle générale (bien que ça arrive), les langages objets ne sont pas portés sur ce genre de plateformes car la conception objet a de nombreux avantages, mais aussi un coût (notamment en mémoire). C'est pourquoi l'aspect mémoire est beaucoup moins considéré en Java qu'en C ou en assembleur par exemple.

Pour te donner un ordre de grandeur, notre ami Virg62 va trier des entiers sur son PC, équipé de Windows Vista. En Java, la taille d'un int étant de 32 bits, soit 4 octets, créer un tableau de 10000 élément va lui coûter... 39Ko. En créer deux (pour effectuer un tri fusion par exemple) va donc lui coûter 78Ko, ce qui est assez négligeable face aux 1048576 Ko qu'il dispose si on suppose qu'il possède 1Go de mémoire vive (étant équipé de Vista, c'est raisonnable de le penser).

Tout ceci pour dire non pas "la mémoire on s'en fout, on en a à l'infini", mais qu'il faut tout de même optimiser ses choix, l'optimisation ici étant peut-être de dépenser quelques octets de façon linéaire afin de gagner du temps de manière exponentielle.

Après, je conviens tout à fait qu'on peut choisir un tri plus gourmand en temps pour des questions d'optimisation (quoique j'ai du mal à digérer ton bubble sort :D, personnellement j'utiliserais un tri par insertion, en moyenne c'est carrément plus efficace que des permutations successives).
Concernant le quick sort, effectivement faut bien choisir le pivot, mais j'ai tendance à faire confiance aux développeurs de Sun qui nous ont implémenté la méthode sort pour les collections. Niveau code, ils ne sont pas des losers comme moi, donc je pense qu'ils savent comment faire ça bien.

Enfin, dernier point : pourquoi utilises-tu un compte anonyme pour poster ici? Ca pourrait être sympa de te créer un compte pour répondre aux questions intéressantes. Tu as des bonnes connaissances en informatique, ça serait super utile pour les utilisateurs d'avoir une personne compétente de plus qui répond régulièrement à leurs messages.
Ca ne te tente pas? blogfrisbee point blogspot point com

Répondre à Marco la baraque