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

Langage Java Discussion :

Afficher une image d'une base de données MYSQL


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut Afficher une image d'une base de données MYSQL
    Salut les amis,
    Je souhaiterais affiché des images depuis ma bdd (mysql) dans un Jlabel dans mon application java. Tout fonctionnais sans problème mais lorsque j'ai mis ma méthode en static que l'image ne s'affiche plus par contre les autres informations s'affichent sans problème. Voici ma méthode :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public static void selectedEtudiant(){
                connexion = new BDConnectMYSQL();
                String MATRICULE = getTxtMatricule().getText();
                String ANNEEACA = parent.getTxtANNEESCO().getText();
                Statement state;
                ResultSet res;
                String sql;
                //ImageIcon monImg;
                try{
                state = connexion.getInstance().createStatement();
                      sql = "SELECT DISTINCT NOMETU,PRENETU,  COMPTE,NOMCLASSE, MATRICULE, CODECYCLE,COURS,SCOLARITE_REEL,PHOTO " +
                              "FROM etudiant E, inscription I " +
                              "WHERE E.NUMETU = I.NUMETU " +
                              "AND I.MATRICULE = '"+MATRICULE+"'";
     
                      res = state.executeQuery(sql);
     
                      while(res.next()){
     
                            getTxtNom().setText(" "+res.getString(1));
                            getTxtPrenom().setText(" "+res.getString(2));
                            getTxtCompteEtu().setText(res.getString(3));
                            getTxtClasse().setText(res.getString(4));
                            getTxtCycle().setText(res.getString(6));
                            labelCours.setText(res.getString(7));
                            getTxtScolarite_Reel().setValue(res.getInt(8));
     
                            //Affichage de l'image de l'étidiant
                            ImageIcon monImg = null;
     
                            Blob image = res.getBlob(8);
                            try{
                                 if(image != null && image.length() > 0){
                                    monImg = new ImageIcon(image.getBytes(1, (int)image.length()));
                                       lbPhoto.setText("");
                                       lbPhoto.setIcon(monImg);
     
                                 }else{
                                       lbPhoto.setText("Pas de photo");
                                 }
                            }catch(SQLException ex){
                                 ex.printStackTrace();}
                            lbPhoto.setIcon(monImg);}
                      if(!state.isClosed()){
                            state.close();}
                      if(!res.isClosed()){
                            res.close();}}
                catch(SQLException ex){
                      JOptionPane.showMessageDialog(null, ex.getMessage(), "SQL ERROR", JOptionPane.ERROR_MESSAGE, null);
                }
          }
    Pouvez-vous me dire pourquoi l'image ne s'affiche pas ?

    Merci d'avance les amis.

  2. #2
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Salut,
    Pourquoi tu stockes l'image en BDD et pas plutôt l'url vers ton fichier?

  3. #3
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Citation Envoyé par michel.di Voir le message
    Salut,
    Pourquoi tu stockes l'image en BDD et pas plutôt l'url vers ton fichier?
    En effet c'est ce que j'ai tenté de faire en mettant en dur le lien vers le fichier image mais elle n'est pas affichée ???

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    A mon avis, ton blob est à l'index 9.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Et à mon humble avis aussi, tu ferais mieux d'utiliser le nom de la colonne plutôt qu'un entier pour dans tes getXXX sur le resultset, cela t'évitera tout problème de confusion d'index.

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    Août 2011
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 313
    Par défaut
    Le dernier intervenant à raison, vaut mieux utiliser les noms de champs. Pourquoi dans ton code je vois ceci :

    res.getInt(8) et res.getBlob(8). C'est dire que ton champ 8 de ta table, est à la fois un entier et une image.

    Cordialement.

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Comment récupérer une image de la base de données et l'afficher dans un jasper?
    Par MasterMbg dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 16/04/2013, 11h41
  3. Afficher une image depuis la base de données
    Par Gunny dans le forum ASP.NET
    Réponses: 9
    Dernier message: 07/01/2010, 13h21
  4. Introduire une image dans la base de données
    Par ghassenus dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/04/2006, 10h09

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