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 :

insert into dans BDD a partir d un fichier csv


Sujet :

JDBC Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Par défaut insert into dans BDD a partir d un fichier csv
    bonsoir,

    je me lance dans les requetes sql sous JAVA, j arrive a faire des selects sur une base. Je dois desormais inserer des donnees a partir d un fichier csv et je n y parviens pas.
    Si je mets une ligne du fichier cela fonctionne mais pour un boucle impossible.
    ci dessous le code qui fonctionne:
    con = DriverManager.getConnection(url, user, password);
    st = con.createStatement();
    sql= "INSERT INTO client values('2','female','toto','tit','corot','roch','fr','84888','TOTO@aaol','010101','coucou','01/01/1996','yyy','0123456789','12','09/09','fr','123 123 456')";
    st.executeUpdate(sql);
    System.out.println("ok");

    Comment faire une boucle a partir d un fichier

    Merci

  2. #2
    Membre expérimenté Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Par défaut
    Citation Envoyé par btsgreta77 Voir le message
    bonsoir,
    ...
    Si je mets une ligne du fichier cela fonctionne mais pour un boucle impossible.
    ...
    quand tu dis impossible, c'était quoi le problème? une exception? montre le code pour la boucle.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Par défaut
    Les problèmes sont que:
    -si je met le chemin du fichier /home/xxxx/xxxx/xxx, il lit le nombre de caracteres du chemin pour faire sa boucle et insert toujours la meme ligne.
    -De plus j'essaye de mettre des coordonnées des colonnes (numeron,nom...) mais il renseigne toujours ce qu il y a entre les guillement.
    par ex ci dessous, il a mis 33 fois (car chemin = 33 caracteres]la table a jour avec +gender+ dans la seconde colonne:

    -si j essaye de mettre le fichier qui est retourne avec
    if (result == JFileChooser.APPROVE_OPTION){
    fichier = dialogue.getSelectedFile() + "";

    j'ai un message null.pointer exption.

    Merci de votre aide

    for (int i =1; i<=fichier.next();i++)
    {sql= "INSERT INTO client values('"+i+"','+Gender+','+GivenName+','+surname+','corot','roch','fr','84888','TOTO@aaol','010101','coucou','01/01/1996','yyy','0123456789','12','09/09','fr','123 123 456')";
    st.executeUpdate(sql);}
    System.out.println("ok");

  4. #4
    Membre expérimenté Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Par défaut
    Citation Envoyé par btsgreta77 Voir le message
    Les problèmes sont que:
    -...
    fichier = dialogue.getSelectedFile() + "";
    for (int i =1; i<=fichier.next();i++)
    la méthode getSelectedFile dans la classe JFileChooser renvoie un fichier du type File,
    par contre la méthode next dans fichier.next(), c'est toi qui l'a inventée? car d'après API in n'y a pas cette méthode.

    Bref, juste pour te donner une idée, moi ce que je fais, c'est simple (enfin à mon avis) JFileChooser me donne le fichier, je crée donc un BufferedReader pour pouvoir lire le contenu du fichier ligne par ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    BufferedReadre reader = new BufferedReader
            (new InputStreamReader(new FileInputStream
                      (new File("ici tu mets le chemin absolu vers le fichier")));
     
    String currentLine= "";
    String Tokenizer = null;
    While ((currentLine = reader.readLine()) != null) /* comme ça tu lit ligne par ligne */
    {
          /* on suppose que le délimiteur pour séparer les colonnes est le caractère ";" */
            tokenizer = new StringTokenizer(currentLine, ";"); 
            while (tokenizer.hasMoreTokens())
            {
                   /* pour obtenir la valeur de la colonne courante */
                   String currentToken = tokenizer.nextToken(); 
     
                   /* et tu continues avec ce qu'il faut faire  */
            }  
    }
     
    reader.close();

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/05/2015, 16h32
  2. [Débutant] Probleme d'Insert into dans acces bdd
    Par killowatt dans le forum Accès aux données
    Réponses: 5
    Dernier message: 13/11/2014, 15h36
  3. [SQL Server] Insert into entre BDD identiques
    Par emilie1t dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/11/2006, 09h04
  4. Insertion Lien ds BDD a partir d'un formulaire PHP
    Par johnkro dans le forum Langage
    Réponses: 5
    Dernier message: 25/07/2006, 08h30
  5. [MySQL] insert into dans un for
    Par pimpmyride dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2005, 17h55

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