Enregister/afficher une image base de donnee

Signaler
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010
-
ishere11
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010
-
Bonsoir,
j'ai cree un frame contient une label et 2 bouton enregistrer et afficher
je vaux lorsque je clique sur le bouton enregistrer un jfilechooser affiche et selectionne une image cet image doit enregistrer dans la base de donnee et je clique sur le bouton afficher l'image affiche dans le jlabel
Mercii pour votre Aide.

10 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

et qu'est ce que tu n'arrives pas à faire ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010

je ne peut pas enregister l'image dans la ba se de donnee et l'afficher:


public void actionPerformed(ActionEvent e) {

       
        if (e.getSource() == Enregister) {
JFileChooser fc= new JFileChooser();
 int returnVal = fc.showOpenDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
  File file = fc.getSelectedFile();

            } 
            }
            

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

Il te faut faire un champ de type binaire dans ta base de données (le type exact dépend du SGBD que tu utilises), et enregistrer ton image sous forme binaire.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010

j'ai fait un champ type blob(oracle) , mais il y a une erreur au niveau de code

public void actionPerformed(ActionEvent e) {

       
        if (e.getSource() == Enregister) {
JFileChooser fc= new JFileChooser();
String path;
File file;
FileInputStream input=null;
 int returnVal = fc.showOpenDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
 file = fc.getSelectedFile();
  path== file.getAbsolutePath() ;
            try {
       File monImg = new File(path);
    input = new FileInputStream(monImg);
              Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection  con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test","system","manager");
            PreparedStatement pst=con.prepareStatement("insert into testimg values(?,?)");
 pst.setString(1, t_NomImage.getText());
        pst.setBinaryStream(2, input);

            int valeur=pst.executeUpdate();
            if(valeur!=0){
              JOptionPane.showMessageDialog(null, "l'image est enregistrée");
            }




        } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.getMessage());
        }
            
                    } else {
                JOptionPane.showMessageDialog(null, "Aucun selection");
            }


Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

il y a une erreur au niveau de code


On n'est pas devin : si tu nous dis pas quelle erreur tu as, ca va être dur de t'aider...
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010

erreurs:

Exception in thread "AWT-EventQueue-0" java.lang.AbstractMethodError: oracle.jdbc.driver.OraclePreparedStatement.setBinaryStream(ILjava/io/InputStream;)V
        at javaapplication1.test.EnregistrerImageActionPerformed(test.java:146)
        at javaapplication1.test.access$200(test.java:32)
        at javaapplication1.test$2.actionPerformed(test.java:68)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

Utilise la méthode java.sql.Blob) setBlob plutôt que setBinaryStream.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010

j'ai utilisé la méthode setBlob mais le même probleme
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
87
Salut,

Montre ton code, et l'exception qui est levée.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
29 mai 2010

Salut,

public void actionPerformed(ActionEvent e) {

       
        if (e.getSource() == Enregister) {
JFileChooser fc= new JFileChooser();
String path;
File file;
FileInputStream input=null;
 int returnVal = fc.showOpenDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
 file = fc.getSelectedFile();
  path== file.getAbsolutePath() ;
            try {
       File monImg = new File(path);
    input = new FileInputStream(monImg);
              Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection  con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test","system","manager");
            PreparedStatement pst=con.prepareStatement("insert into testimg values(?,?)");
 pst.setString(1, t_NomImage.getText());
        pst.setBlob(2, input);

            int valeur=pst.executeUpdate();
            if(valeur!=0){
              JOptionPane.showMessageDialog(null, "l'image est enregistrée");
            }




        } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.getMessage());
        }
            
                    } else {
                JOptionPane.showMessageDialog(null, "Aucun selection");
            }



Erreurs;

Exception in thread "AWT-EventQueue-0" java.lang.AbstractMethodError: oracle.jdbc.driver.OraclePreparedStatement.setBlob(ILjava/io/InputStream;)V
        at javaapplication1.test.EnregistrerImageActionPerformed(test.java:146)
        at javaapplication1.test.access$200(test.java:32)
        at javaapplication1.test$2.actionPerformed(test.java:68)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)