# Java > Interfaces Graphiques en Java > AWT/Swing >  inserer une image dans MYSQL et rcuprer avec JAVA

## ulysse031

salut mes amis 
Je suis face  un petit problme et j'ai pas vraiment d'ide pour y remdier 
Je voudrais savoir comment stocker des images dans MYsql et pouvoir les recuperer depuis un code JAVA  ,J'aimerai que dans ce rsultat s'affiche une image. 
Exemple: ma requte affiche quelques prnoms (Robert, Martin, Eric), je voudrais que leurs photos apparaissent en dessous de leurs noms respectifs. 
un exemple mes amis car pas facile 
et merci de bien vouloir m'aider 
 ::cry::

----------


## AliLoU`

j'ai pas d'exemple mais pour faire a il faut que tu stock l'url de ton image dans la bdd  (les images seront stock physiquement sur un ftp)

ensuite depuis ton appli java, tu utilise JDBC (il doit y avoir un tuto dans le site) pour recuperer les donnes depuis la bdd, apres tu peux utiliser par exemple le composant JTable de swing pour afficher le tout  :;):

----------


## sinok

Sinon tu vas un minimum chercher dans les cours de dvp et tu tombes sur a:

*Utilisation de JDBC pour la gestion d'images en base de donnes*

----------


## ulysse031

merci pour cette information 
voila j'ai cr une table avec deux champs name et img 
CREATE TABLE image (
  name varchar(20) NOT NULL,
  img mediumblob,
  PRIMARY KEY  (name)
);


et j'ai deux foto sur mon pc et je voulais les insrer dans la table comment je dois faire 
je n'ai pas compris " l'url de ton image dans la bdd (les images seront stock physiquement sur un ftp)"

----------


## guigui5931

ce qu'il veut te dire c'est de ne pas mettre l'image en elle mme dans ta base mais seulement l'url de l'endroit ou est situ l'image.

----------


## ulysse031

ce que je comprends inserer par exemple dans la table 
si je tape la requette avec MYSQL 
insert into matable (name,img)values('ulysse','C:\\Documents and Settings\\BE\\Bureau\\a.jpg');
alors l'url c'est:C:\\Documents and Settings\\BE\\Bureau\\a.jpg ?

----------


## ulysse031

salut 
j'ai insr les images dans la base mysql mais pour charger l'image dans une fenentre plutot rcuprer l'image je n'ai aucune ide 
voila la partie qui me permet de rcuprer des donne   partir de la table mais avec les image je n'ai aucune ide 
je cherche  afficher l'image sur JLabel  avec des informations conserne la personne 
voila la partie qui affiche des renseignement de la personne 



```

```


mais avec l'image aucune ide j'espere que vous m'avez compris

----------


## guigui5931

Ca dpend ce que tu veux faire avec ton image. Si tu veux la mettre dans une fenetre tu peut utiliser la classe ImageIcon

----------


## sinok

Relis le tuto que je t'ais pass, il y a tout ce qu'il te faut

----------


## ulysse031

voila j'ai essay d'afficher l'image de ma base MYSQL sur la fenetre mais je n'ai rien sur ma fenetre ::cry::  


```

```

----------


## g0up1l

Salut,

j'ai eu le mme problme pour afficher les photos des articles d'un magasin !

Perso, je ne passe pas par un blob, je fais :



```

```

puis



```

```

----------


## ulysse031

voila la modification de mon code mais a n'a pas march de tout 


```

```

----------


## g0up1l

A voir ton code, j'ai l'impression que ta variable 'photo' n'est pas instancie.

il faut rajouter


```

```

----------


## g0up1l

Et d'un point de vue SQL, si il y a plusieurs 'mustapha' dans ta table 'image', ton recordset va ramener plusieurs lignes. Et comme tu boucles sur  les lignes pour affecter l'image, si le dernier d'entre eux n'a pas d'image....

un conseil : met des lments de DEBUG dans ton code (pt d'arrts si tu peux ) pour vrifier que :

1 - ta requte ramne un rsultat
2- que l'image contenue dans le recordset n'est pas vide

----------


## ulysse031

merci encore mais le code n'affiche rien la fenetre apparait sans l'image 


```

```

----------


## g0up1l

Peux-tu tester le code suivant :


```

```

----------


## ulysse031

merci encore voila ce que je viens de faire l'mage est affich sur la fenetre 


```

```

mais le pb l'image a pris un grand espace sur la fenetre presque tout la fenetre , je cherche  afficher l'image dans un rctangle ou carr bien limit choisi au haut a la droite 

avec quelcomposant je peux faire a car avec label c'est moche

----------


## ulysse031

je n'ai pas trouv un composant qui me permet d'afficher l'image car avec jlabel ne marche pas  ::cry::

----------


## g0up1l

Tu peux toujours mettre ton Panel dans un JScrollPane et ainsi ton image aura une taille fixe mais elle ne sera "rduite"  la taille de ton composant, tu auras juste des ascenseurs.

Si tu veux la rduire,  mon avis il faut passer par la mthode de dessin de ton composant.



```

```

hope it helps !

----------


## hedes

Voici la solution :


```

```

Attention, l'image dessin ne sera pas centre, mais dessine  gauche du panel.
Voil !

Sinon, un conseil : ne pas mettre les images en base de donnes, car trs rapidement, vous aurez des problmes de mmoire...

A+
Hery

----------


## ulysse031

merci hedes mais utiliser ta mthode avec mon code , car tu as dfinit un exemple comment l'integrer dans mon code

----------


## hedes

> merci hedes mais utiliser ta mthode avec mon code , car tu as dfinit un exemple comment l'integrer dans mon code


Je ne t'ai pas donn un exemple, je t'ai donn un composant que tu peux utiliser pour afficher n'importe quelle image. Tu peux utiliser ce composant  la place d'un JLabel.

pour crer ton image, tu peux par exemple :


```

```

Je ne peux gure faire plus.
A+
H.

----------


## ulysse031

merci encore mais pas facile d'integrer le code que tu as post car je n'arrive pas  le comprendre ::cry::

----------


## guigui5931

Je vais faire une tentative


```

```

J'espre que tu comprend mieux (si non dis prcisement ce que tu comprend pas)

----------


## ulysse031

bonsoir merci mes amis je voulais bien developper cette ide et d'afficher l'image sur JScrollpane 
voila le code mais l'image n'affiche pas sur le composant JScrollPane 



```

```

cette partie ne marche pas jS.add(photo);

je viens de lire http://java.sun.com/docs/books/tutor...html#operation

mais je n'ai pas bien compris  ::cry::

----------


## ulysse031

le problme que l'image (img) ne s'affiche pas sur JScrollPane (Js)

----------


## ulysse031

bonjour 
je coince encore pour afficher l'image sur le composant JScrollPane  ::cry::  
essay me comprendre

----------


## eclesia

une autre solution que le JScrollPane :



```

```

mais pour que ca marche il faut que tu ajoutes la librairie swingx  ton projet.
tu la trouve ici : http://swinglabs.org/downloads.jsp

----------


## ulysse031

merci ami pour cette information mais je voulais bien utiliser JScrollPane pour afficher l'image 
merci encore  ::cry::

----------


## sinok

Bah tu dessine ton image dans un JPanel (fais bien attention  setter la prefferedSize du JPanel en accord avec la taille de ton image, sinon pas de scrollbars) puis tu metq ton JPanel dans ton JScrollPane.


```

```

Et ne viens pas dire que a ne marche pas, je viens de le tester.

Preuve:

----------


## ulysse031

salut 
merci pour ce que tu m'as fait 
voila j'ai encore modifi le code pour afficher une image de ma base de donne sur JScrollPane ();
voila le code 


```

```

mais le malheur l'image ne s'affiche pas 
j'ai l'impression que cette partie monque quelque chose


```

```

merci encore mes amis

----------


## ulysse031

je coince encore vous pouvez m'aider sur ce que je viens de faire pourquoi mon image ne s'affiche pas surle comosants  ::cry::   ::(:  
aider moi

----------


## sinok

Commence par arer tes sources, sparer ce que tu fais en plusieurs classes:

Une pour la communication avec la base de donnesune pour l'aspect graphiqueune pour faire le lien entre les deux.Une fois que ce ser un tant soit peu moins le bordel avec des noms de variables un poil explicite et le tout bien indent et comment, je veux bien te filer un coup de main.

Mais avec le foutoir que tu mets en source, j'ai un tant soit peu la flemme.


Et si ton image ne s'affiche pas, il est plus que probable que ce soit d  un mauvais chemin.
++

----------


## ulysse031

```

```

----------


## sinok

Effectivement




> ```
> 
> ```


Ajoutes plutt ton JLabel de cette faon:



```

```

----------


## ulysse031

merci encore 
j'ai enfin afficher l'image sur JScrolpane 
voila l'image sur la fenetre 


```

```

mon image avec la taille (256,192)
encore un pb pourquoi l'image affich moche sur ma fenetre petite entourer d'un espace comme le lien indiqu 

merci encore

----------


## sinok

Tu redimensionne ton image avec du getScaledInstance, donc forcment elle est trop petite pour remplir ton JScrollPane  ( qui tu as donn une taille fixe => le NullLayout c'est Maaaaal, ce qui fait que la Border de ton JScrollPane apparait).

D'ailleurs getScaledInstace n'est pas franchement le must pour redimensionner une Image. C'est issue d'anciennes versions de java et depuis il y a des mcanismes un tant soit peu meilleurs qui sont apparus: http://today.java.net/pub/a/today/20...dinstance.html

----------


## ulysse031

merci ami jamais j'oublie ton aide  ::):   ::P:   ::oops::

----------


## hakou08

Donc, j'ai pu ajuster le code  ma manire et sa marche nickel. J'ai utilis un panel dans lequel je met mes images dans des labels

```

```

----------


## bassem-ca

bonjour,

Avez vous trait le cas lorsque la requte renvoie plusieurs URLs donc plusieurs images?
pourriez-vous me proposer une solution de visualisation?

d'avance Merci

----------

