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 :

Problème avec insertion de fichier dans la base de données


Sujet :

JDBC Java

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut Problème avec insertion de fichier dans la base de données
    salut les développeur ,j'ai vraiment besoin de vous
    j'ai réalisé une application en java ma base de donnée et sous postgrsql... et ça était necessaire de sauvegarder des fichier dans la base... dans un premier temps je faisais un test en utilisant une table simple composée de deux colonne "nom" de type charcter varying et "image" de type btyea (pour la donnée binaire) en utilisant le code ci dessous tout marche bien le fichier se sauvegarde normalement

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public class ChargerImage {
     
     
    public void insererImage(String nom, String chemin ,String Table) {
       File file = new File(chemin);
       try{
     
           //lien vers la base de données
     
           String url = "jdbc:postgresql://localhost:5432/gestion";
     
                            String driver="org.postgresql.Driver";
    			String user = "postgres";
    			String MDP="*****";
     
           Connection connection = DriverManager.getConnection(url,user,MDP);
     
          //lien vers notre fichier image
          FileInputStream stream = new FileInputStream(file);
     
          //préparation de l'instruction SQL
          String sql = "INSERT INTO "+Table+"  VALUES (?, ?)";
          PreparedStatement statement = connection.prepareStatement(sql);
     
          //insertion de l'image
          statement.setString(1, nom);
          statement.setBinaryStream(2, stream, (int)file.length());
          statement.executeUpdate();
     
        }catch(Exception e){
           //traitement des erreurs SQL, IO, etc .
     
            JOptionPane.showMessageDialog(null, e.getMessage());
        }finally {
           //fermeture de la connexion, du flux, etc.
        }
    }
    mais quand je suis passé au sérieux c a d ma véritable table qui contient 10 colonne + les deux autre colonne les problemes se sont instalés et le fichier ne se sauvegarde pas,quelqu'un aurait une idée sur ce big probléme?? comment puisse je modifier le code pour que ça marche avec une table qui contient plusieurs champs?? :'(

    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le code qui insert 2 colonnes, dont la première est nom et la seconde est ton fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     String sql = "INSERT INTO "+Table+"  VALUES (?, ?)";
          PreparedStatement statement = connection.prepareStatement(sql);
     
          //insertion de l'image
          statement.setString(1, nom);
          statement.setBinaryStream(2, stream, (int)file.length());
    Pour insérer 10 colonnes, faire pareil, mais avec 10 ? dans sql et l'affectation des 10 colonnes à insérer, de 1 à 10, dans le bon ordre.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    merci joel de m'avoir repondu
    donc je comprend que voila ce qu va ressembler la suite de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String sql = "INSERT INTO "+Table+"  VALUES (?, ?,?, ?,?, ?,?, ?,?, ?,)";
          PreparedStatement statement = connection.prepareStatement(sql);
     
          //insertion de l'image
          statement.setString(1, nom);
          statement.setBinaryStream(2, stream, (int)file.length());
          statement.setString(3, nomCli);
          statement.setString(4, prenomCli);
          statement.setString(5, AdrCli);
    ....
    ....
    c'est ca??

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    la dernière virgule dans le contenu de ta variable sql ne t'aidera pas. Enlève la!

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par selmagsi Voir le message
    donc je comprend que voila ce qu va ressembler la suite de mon code:
    ...

    c'est ca??
    Le meilleur moyen de le savoir c'est encore de tester !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    MasterMbg merci c'était erreur de frappe
    Joel oui je suis en cours de tester j'ai probleme avec un champs de type date donc je ne peux pas confirmer que c'est bon jusqu'a ou je le régle
    merci bcp

  7. #7
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par selmagsi Voir le message
    j'ai probleme avec un champs de type date donc je ne peux pas confirmer que c'est bon jusqu'a ou je le régle
    C'est quoi ce problème ?

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  8. #8
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    c'est bon je l'ai reglé il falait juste faire un cast java.sql .date c'est tout
    maintenant mon prbléme c'est que le 8eme champ de ma table est de type serial c'est a dire incrementation automatique mais je n'ai pas su le gérer je dois spécifier sa valeur et ça aide pas mon cas

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Il faudrait dans ce cas utiliser la syntaxe où tu spécifies les noms de colonnes, et ne pas indiquer la colonne automatique (ni nom, ni valeur) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO table (nom_colonne_1, nom_colonne_2, ...)
     VALUES ('valeur 1', 'valeur 2', ...)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Points : 203
    Points
    203
    Par défaut
    cool, ça marche super bien merci bcp Joel

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

Discussions similaires

  1. [MySQL] Problème d'insertion des accents dans une base de donnée MYSQL
    Par maroon1970 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2011, 18h35
  2. Insertion de fichiers dans une base de données sql server
    Par stefsas dans le forum Accès aux données
    Réponses: 1
    Dernier message: 30/06/2010, 20h22
  3. [PDO] insertion de fichier dans une base
    Par artotal dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2008, 20h45
  4. [Conception] Problème d'insertion de tuples dans la base
    Par grumly22 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 11/05/2006, 09h02
  5. [VB6] Problème avec insertion d'icônes dans menu
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/03/2006, 21h38

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