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

Interfaces Graphiques en Java Discussion :

Importer un fichier CSV automatiquement dans une base de données


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut Importer un fichier CSV automatiquement dans une base de données
    bonjour,
    je développe une interface graphique avec java sous netbeans. j'ai construit un boutton qui sert a importer un fichier csv dans une base de donnée de manière automatique avec ce code :
    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
    22
    23
    24
     
    JFileChooser fc=new JFileChooser(); 
        fc.showOpenDialog(this);
        File f=fc.getSelectedFile();
        String path=f.getAbsolutePath();
        try
        { 
            FileInputStream fin=new FileInputStream(f);
        int len=(int)f.length(); 
                java.sql.PreparedStatement ps1=con.prepareStatement("LOAD DATA LOCAL INFILE 'C:\\Users\\nabil.khedhri.stg\\Desktop\\TT.csv' INTO TABLE essai FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\\\r\\\\n' ");
        ps1.setBinaryStream(1, fin, len); 
        int status =ps1.executeUpdate();
        if(status > 0) 
        { 
            j1.setText("Successfully inserted in DB"); 
        }
        else
        { 
                j2.setText("Image not inserted!"); 
                } 
        }
        catch(Exception e)
        {System.out.println(e);
        }
    Mais pas de résultat.
    merci de m'aider.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    Je suppose que c'est du MySql

    Déjà, ton file chooser n'est pas utilisé mais bon, on y reviendra plus tard

    Ensuite tu utilises un preparedStatement en pure perte puisqu'il n'y a pas de " ? " dans ta chaîne à l'endroit où il faut mettre un fichier

    Après, il est inutile de s'emberlificoter avec un FileInputStream puisque MySql s'en passe très bien.

    Bon, maintenant que je t'ai bien cassé la baraque, essaye simplement (sans file chooser) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    ...
    String sql = "LOAD DATA LOCAL INFILE \"C:\\Users\\nabil.khedhri.stg\\Desktop\\TT.csv\" " +
                    "INTO TABLE essai  FIELDS TERMINATED BY ';'  LINES TERMINATED BY '\\r\\n' "
     
    int result = con.createStatement()executeUpdate(Sql);
    System.out.println("result = " + result );
    Si ça marche alors tu peux t'intéresser au file chooser pour indiquer le fichier
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    merci pour votre réponse.
    j'ai essayé avec cette requete sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LOAD DATA LOCAL INFILE 'C:\\Users\\alaeddine\\Desktop\\TT (2).csv'
                INTO TABLE incident  FIELDS TERMINATED BY ';'   ENCLOSED BY '"' LINES TERMINATED BY '\\r\\n' (ID_Incident, Status, Vendor, Priority, Criticality_Tt, Title, Description, Affected_CI, Affected_Service, Assignee, Assignment_Group, Reassignment_Count, Open_Time, Close_Time, Outage_Start, Reassignment_Time, Outage_End, Impact, Solution, Assignment_Manager_Name,Assign_Deptmgr, Opened_By, Closed_By, Closure_Code, Update_Action, Last_Updated_By)
    Mais il prend seulement une ligne du fichier .

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    Probablement un problème de fin de ligne.
    Tu peux mettre un échantillon du fichier (5 ou 6 lignes) ?
    Par ailleurs, quelle est l'origine du fichier (Window, linux) ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Points : 67
    Points
    67
    Par défaut
    windows

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    Tu peux mettre un échantillon du fichier (5 ou 6 lignes) ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 10h24
  2. Réponses: 1
    Dernier message: 19/02/2008, 01h32
  3. Réponses: 4
    Dernier message: 14/01/2008, 14h50
  4. Stoquer dans un fichier XML ou dans une base de données ?
    Par ludovic tambour dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 15/11/2007, 12h02
  5. Import de fichier CSV automatique dans Access
    Par Jmar dans le forum Access
    Réponses: 4
    Dernier message: 20/01/2006, 11h48

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