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

JPA Java Discussion :

comment enregistrer un photo dans ma base de données,


Sujet :

JPA Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut comment enregistrer un photo dans ma base de données,

    Bonjour à tous,


    comment je peux enregistrer une photo dans ma base de données, i,e

    j'ai un champ qui recoit le chemin d'une image;ok;

    et je veux enregistrer cette image dansla base de données, je veux savoir commentje peux faire le casting????? je utilise une base de données oracle

    le champs consacré dans la base de donnée est de type clob

    Merci d'avance;


  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Suffit de stocker le type MIME dans un champs VARCHAR et le contenu de l'image (du fichier) dans le champ blob.

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    je te donne le code pour bien comprendre , ok


    j'ai un entité classe

    ce champ d'une entité classe "Utilisateur"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Lob
        @Column(name = "photo")
        private Serializable photo;
    avec mettateur et accesseur

    dans le code du client je instance une variable de la classe " utilisateur" et j'appel .setPhoto(ici qu'est ce que je dois mettre)


    merci

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Si tu nous disais quel bibliothèque tu utilises pour attaquer ta base de données, ça pourrait servir.

  5. #5
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Citation Envoyé par millie Voir le message
    Si tu nous disais quel bibliothèque tu utilises pour attaquer ta base de données, ça pourrait servir.
    JPA

  6. #6
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    en effet, je veux savoir le type java de l'attribu photo,

    car sur ma table le champs photo est BLOb


  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    tu as essayé avec un int[] ou byte[] ?

  8. #8
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    Merci,
    Supposons maintenant que notre attribu de type byte[],ok

    comment à partir de notre chemin enregistrer une image ?
    et je ne sais pas comment je peux transferer l'image en byte????

    voila ce que je viens de trouver jusqu'a maintenant,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    File f= new File("Icons/image.png");
    try {
    image = ImageIO.read(f);
    } catch (IOException e) {
    e.printStackTrace();
    }
    après comment je peux faire?


    Merci djo.mos

  9. #9
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Tu souhaites stocker un .png en base ou tu veux stocker la sérialisation d'un objet "Image" ?

  10. #10
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    voilaaaaaaaaaaaaaa,

    en effet j'ai pas comrpis la difference entre les deux

    voila mon objectif : j'ai une entity classe utilisateur et dont ses attribus il y a un attribu photo , donc à la creation de l'utilisateur je dois sélectionner son image, donc comme point d'entré on a le chemin de l'image ,ok

    je veux savoir deux trois choses :

    1- le type de l'attribue dans l'entite classe : "sachant que djo.mos ma dis : byte[]"

    2- comment enregistrer cet enregistrement dans ma base de donneés oracle 9i, je utilise BLOB comme champs de notre attribue,

    3- la difference entre "stocker un .png en base et la sérialisation d'un objet "Image" "



    Merci à touuuuuuuuuuuus, désolé


  11. #11
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Sun03 Voir le message
    3- la difference entre "stocker un .png en base et la sérialisation d'un objet "Image" "

    Je laisserai à quelqu'un d'autres t'expliquer les autres points.


    Un fichier png, c'est donc une image compressée qu'on sauvegarde sur le disque dur qui a un format particulier. Tu peux récuperer le flux de byte d'un .png (ça pourrait être n'importe quoi) en utilisant un FileInputStream et en utilisant la méthode read. Tu récupereras alors le champ de byte[] du fichier comme si tu l'avais ouvert avec le bloc note.
    Cette méthode est totalement indépendante du fait que ce soit une image. Si c'était une musique, ce serait le même traitement.


    La classe BufferedImage est une classe qui représente n'importe quelle image (une image RGB, RGBA, noir et blanc). La classe ImageIO retourne un BufferedImage : http://java.sun.com/j2se/1.4.2/docs/...eredImage.html
    qui n'est pas sérializable.
    Il sera dans ce cas nécessaire de créer une classe "Image" à toi qui implémente l'interface Serializable, il te faudra convertir ton BufferedImage en ta classe Image puis alors tu pourras la serialiser, obtenir un champ de byte et le mettre en base de données. Quand on sérialize un objet, Java va transformer l'objet en champ de byte en utilisant une norme particulière.

    A noter que si un autre programme doit exploiter les données de la base de données, il est fort probable qu'il ne puisse pas lire les données serializés car seul java est fait pour déserialiser les données...

  12. #12
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    Merci "millie" de ta expilcation,

    et j'attends les autres reponses,


Discussions similaires

  1. Réponses: 1
    Dernier message: 15/04/2014, 12h45
  2. Réponses: 3
    Dernier message: 09/04/2008, 14h19
  3. Comment enregistrer dates NULL dans la base de données ?
    Par Arfigado dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/09/2006, 17h58
  4. Réponses: 1
    Dernier message: 30/07/2006, 11h49

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