Urgent!! Recuperer ImageIcon de mySQL

Signaler
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005
-
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005
-
Bon alors c un rien complexe en fait....

Voila, j'ai un Label qui contient une ImageIcon (jusqu'ici rien d'anormal)...
J'aimerai deja stocker cette Image ds une Base de donnees mySQL en utilisant je pense un type BLOB (ou autre) , donc deja comment faire?????

Apres, je voudrais recuperer la photo de la BD et la reinserer ds un nveau JLabel... Donc la question est comment faire pour que j'ai ma photo qui s'affiche ds mon JLabel et non pas un truc du type javax.swing.ImageIcon@bfh2kj ....

Je sais pas si je suis clair, mais j'espere que qqu'un pourra m'aider tres vite...
MERCI

Oliv

11 réponses

Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
ben montre ton code paske la tu stockes le nom de la classe ou l adresse memoire de ton image !!!
Duss
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Alors j'ai mon label qui contient l'image (elle s'affiche parfaitement) et je fais:

ImageIcon ph = ((ImageIcon)(urlPhoto.getIcon()));

et apres je fais:

requete = "insert into elus (nom,prenom,etiquette,titre,photo,mail,tel,telec,port,region,departement,circonscription,canton,commune) values ('"+n+"','"+p+"','"+et+"','"+x+"','"+ph+"','"+m+"','"+t+"','"+tc+"','"+po+"','"+reg+"','"+dept+"','"+circ+"','"+cant+"','"+comm+"');";

et je lance un ResultSet qui fait l'insertion et ca rentre bien les valeurs.
Le champ de la BD pr ma photo est un BLOB.

Et apres une fois que je vx recuperer l'image sotckee, je fais:

String k = rs.getString("photo");
ImageIcon z = new ImageIcon(k);

et je recolle le "z" ds un label.

Franchement je sais pas, donc merci pr l'aide que tu pourras m'apporter
Oliv
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
regardes ici
ils t expliquent comment la stocker et la recupérer ;)
Duss
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Merci c sympa, mais le chti prob, c que l'image est pas stockee sur le disque, elle vient directement du presse papier (oui je sais c complique comme systeme, mais c une question de rapidite)

Je copie une image du presse papier directement sur le label et je vx la stocker dans la base...Ca marche qd meme ton idee???

Merci
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
ben normalement oui puisque tu la recupere depuis ton label
essayes ;)
Duss
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Alors je fais ca:
File f = new File("olivier.jpg");
FileInputStream fin = new FileInputStream(f);
BufferedInputStream buf = new BufferedInputStream (fin);
ByteArrayOutputStream out = new ByteArrayOutputStream();
int b;
while ((b = buf.read()) != -1){
out.write(b);

}
buf.close();
byte[] array = out.toByteArray();
out.close();
connexion.insertion("update elus set photo='"+array+"' where id = 1");

pour stocker la photo ds la base, le type de photo est BLOB. La requete lancee est:
update elus set photo='[B@e45076' where id=1;

Apres pr recuperer la photo je fais:ResultSet resultSet connexion.selection("select photo from elus where id 1");
try{
if (resultSet.next()){
InputStream inputStream = resultSet.getBinaryStream(1);
if (inputStream != null){
BufferedInputStream in = new BufferedInputStream(inputStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
int b;
while ((b = in.read()) != -1){
out.write(b);

}
in.close();
byte[] array = out.toByteArray();
out.close();
photo.setIcon(new ImageIcon(array));
}

Et y a toujours rien qui s'afficher ds mon label.
Une idee?
Merci de l'aide qd meme :o)
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
connexion.insertion("update elus set photo='"+new String(array)+"' where id = 1");
Duss
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Si je fais ca, y a ca qui me tombe dessus aussi :
Erreur à l'execution de la requête :
update elus set photo='?ÿ??
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Erreur à l'execution de la requête :
update elus set photo='?ÿ??
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
essayes de faire :
buf.close();
String array = out.toString();
out.close();
connexion.insertion("update elus set photo='"+array+"' where id = 1");
Duss
Messages postés
30
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
26 mai 2005

Ca fait exactement la meme erreur, vu que a partir du moment ou un ' va se ballader ds la String, ca va planter la requete.
Je vois vraiment plus moi :(
D'autres idees??
Merci
Oliv