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 :

je cherche a créer un vecteur a partir d'une base de donnée


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut je cherche a créer un vecteur a partir d'une base de donnée
    salut mes amis et merci de bien vouloir m'aider
    j'ai une base de donnée avec des enregistrement avec deux colonne transaction et code article
    je cherche comment je dois mettre les enregistrement de la colonne code article apres éliminer les doublons dans un vecteur
    car ça me servis à mon TP

    la suite sera comme ça apres avoir le vecteur par exemple TAB
    for(int i=1;i<10;i++)
    while(resultat.next()){
    String nom=resultat.getStrng("code article ");
    if (nom.equals(TAB[i])==true)
    j++;



    comme vous voyez je ne sais pas comment créer le vecteur apartir de ma base de donnée


    merci d'avance

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Déjà l'utilisation d'un Vector n'est utile que dans une version Concurrente (avec des thread).

    De plus tu as des collections qui gère déjà les doublons. Les Set.

    Au lieu de t'embêter à chercher les doublons, tu devrais plutôt insérer tes données dans un Set. Si la clé n'existe pas c'est inséré sinon ça passe au suivant ...

    Essaye et montre nous ton code (car vu celui de ton message, tu vas surement nous poser qques questions encore ... )

    Bon courage

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    MERCI AMI mais je n'ai pas compris bien ce que tu as voulu dire
    voici mon code
    package aa;

    import java.awt.*;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import javax.swing.*;
    import java.lang.*;
    import javax.swing.table.*;

    public class TableFromDatabase extends JFrame
    {
    public TableFromDatabase()
    {
    String url = "jdbc:mysql://localhost/test";
    String userName = "root";
    String password = "19dfdf05";

    try
    {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    conn = DriverManager.getConnection(url, userName, password);
    System.out.println("Connected");

    Statement instruction = conn.createStatement();
    String sql="select DISTINCT code from allo";
    ResultSet resultat = instruction.executeQuery(sql);

    int i =1;
    String tab[]={};
    while (resultat.next()){
    String nom=resultat.getString("code");
    while (i<3)
    {
    tab[i]=nom;
    i++;
    }
    }

    System.out.println("le valeur "+tab[2]);

    }
    catch(Exception e)
    {
    System.out.println( e );
    }

    // Create table with database data






    }

    public static void main(String[] args)
    {
    TableFromDatabase frame = new TableFromDatabase();
    frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
    frame.pack();
    frame.setVisible(true);



    }
    }

    alors un message d'erreur java.lang.ArrayIndexOutOfBoundsException: 1

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    C'est quand tu veux que tu te décides à utiliser pour mettre ton code dans ces balises afin que se soit plus lisible

    Sinon tant que j'y suis, il faudra m'expliquer cette ligne
    et ce bloc aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while (resultat.next())
    {
       String nom=resultat.getString("code");
       while (i<3)
       {
          tab[i]=nom;
          i++;
       }
    }
    Comme je te l'ai dit, tu sembles manquer de base sur la programmation en Java et ce n'est pas t'aider que de te filer le code tout prêt ainsi que les corrections. Je veux bien t'aiguiller et te signaler les erreurs mais un conseil : apprends, plonge toi dans les tutoriaux, les cours, les notions, tu t'en sortiras mieux

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    MERCI et centent toujours te revoir
    je vais t'expliquer

    j'ai essayer de créer une tableau et je l'ai initialisé vide car je cherche a mettre des valeurs dans le tableau par la suite
    c'est pour ça j'ai mis String tab[]={};


    le deuxième cas c'est de remplir le tableau par les enregistrement qui se trouve dans la base de donnée alors j'ai utilisé
    while (resultat.next())
    {
    String nom=resultat.getString("code");

    et pour faire l'affectation au tableau j'ai mis
    while (i<3)
    {
    tab[i]=nom;
    i++;
    }

    le 3 just pour parcourir le tableau

    mais cette méthode n'a pas marché car j'ai message d'erreur

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par ulysse031

    j'ai essayer de créer une tableau et je l'ai initialisé vide car je cherche a mettre des valeurs dans le tableau par la suite
    c'est pour ça j'ai mis String tab[]={};
    pour le tableau c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] tab = new String[10]; // initialisé à 10
    String[] tab2;  // pas initialisé
    (woah trop bien ces balises CODE )

    De plus dans ton cas, tu ne sais pas quelle taille va faire ton tableau. La solution à ça s'appelle les Collections.
    Je te conseille de te renseigner la dessus. (et plus particulièrement sur les Set dans ton cas). Un petit tutoriel sur les Collections serait surement bénéfique pour ton apprentissage de Java. C'est une des bases incontournable.


    Citation Envoyé par ulysse031
    et pour faire l'affectation au tableau j'ai mis
    while (i<3)
    {
    tab[i]=nom;
    i++;
    }
    Tu as le message d'erreur puisque ton tableau est "initialisé" à vide.
    Ici ton cherches à mettre le même nom dans les 3 premières cases de ton tableau

    En utilisant une collection, tu n'as pas à te soucier de la taille. Tu fais juste un add() et hop ...

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    salut merci ami tu es gentil merci encore de tout je viens de lire la partie Collections en Java : Prise en main. je vais encore relire pour mieux comprendre merci pour cette information
    tu m'as aidé a m'avancer sur mon code merci
    mais désolé encore j'ai encore un message d'erreur j'ai ajouté une partie dans le code qui fait la comparaison de chaque élément de la base de donnée avec élément de tableau


    Statement instruction = conn.createStatement();
    String sql="select DISTINCT code from allo";
    ResultSet resultat = instruction.executeQuery(sql);

    int i =1;
    String tab[]=new String[10];
    while (resultat.next()){
    String nom=resultat.getString("code");


    tab[i]=nom;
    i++;

    }


    int d=1;
    String s="select * from allo";
    ResultSet resulta = instruction.executeQuery(s);

    for( i=1;i<10;i++){
    while (resultat.next()){
    String n = resultat.getString("code");
    if (tab[i] == n) {
    d++;
    System.out.println("le nombre de "+tab[i]+d);
    }
    }
    }


    le message d'erreur :java.sql.SQLException: Operation not allowed after ResultSet closed

    merci encore

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2015, 11h09
  2. Créer des cube a partir d'une base de données (oracle) avec talend
    Par tahabers dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 18/02/2015, 11h30
  3. Réponses: 3
    Dernier message: 22/03/2009, 17h47
  4. [MySQL] créer un tableau à partir d'une base de donnée
    Par bastien dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/01/2009, 15h03
  5. Créer des clés informatiques à partir d'1 base de données??
    Par Flateric dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 11/02/2005, 07h49

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