Bonsoir,
je vaux enregistrer une image dans la base de donnee et je vaux quelqu'un qui peut m'aider.
Merciii.
Version imprimable
Bonsoir,
je vaux enregistrer une image dans la base de donnee et je vaux quelqu'un qui peut m'aider.
Merciii.
Merci de chercher dans les cours et tutoriels java mis à disposition par developpez.com
Action performand de boutton ajouter affiche des erreurs
Le code:
Erreurs:Code:
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 String name,chemin; FileInputStream input = null; JFileChooser fc= new JFileChooser(); int returnVal = fc.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); //This is where a real application would open the file. name= file.getName() ; chemin= file.getAbsolutePath() ; try { File monImage = new File(chemin); input = new FileInputStream(monImage); } catch (FileNotFoundException ex) { Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex); } try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection cn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:BXL","system","manager"); PreparedStatement pst=cn.prepareStatement("insert into testimg values(?,?,?)"); pst.setString(1, tNom.getText()); pst.setString(2, name); pst.setBinaryStream(3, input); int value=pst.executeUpdate(); if(value!=0){ JOptionPane.showMessageDialog(null, "l'image est enregistrée"); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); } } else { JOptionPane.showMessageDialog(null, "Aucun selection"); }
Code:
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 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)
Quelle version d'Oracle utilises tu, quelle est la version de ton driver?
j'utilise Oracle 8i et le driver classes12.jar
prend une version plus récente du driver, une qui implémenter les version récentes de jdbc. Les chiffres dans les drivers oracle, correspond à la version de java, pas à la version du driver, en l'occurence, classes12, c'est pour java 1.2 :aie:, utilise plutot ojdbc6.jar de chez oracle ;)
l'ojdbc6 c'est pas le driver prévu pour oracle 11 des fois?
Pour oracle 8 c'est effectivement le classe12 qui traine toujours. Et là, en ce qui concerne les binary streams, de souvenir c'est foutu, oracle n'offre pas le support pour les binary streams qu'à partir d'une version spécifique de l'ojdbc14.
Donc la première chose à faire est d'aller chercher la toute dernière version du classe12 et de voir le résultat. http://www.oracle.com/technology/sof...s/jdbc817.html
Bon ensuite tu peux toujours essayer les drivers récents, mais de souvenir le driver thin n'implémentent pas les couches de compatibilité, au contraire des drivers OCI.
non il est existe plein de versions du classes12 chez oracle, comme il existe plein de version du ojdbc14 et du ojdbc5 et 6 ;)
la numérotation d'oracle est curieuse. Personellement, je n'ai jamais eu de problème à prendre les drivers récent et à les faire tourner sur une vieille version du serveur oracle. Maintenant je me suis arreté à oracle 9 avec les driver de oracle 11, mais y a pas de raison que oracle 8 soit abandonné ;)
comme je l'ai dit, y a une retro compatibilité des driver, j'ai utilisé le 11 sur une oracle 9 pendant longtemps sans aucun soucis. Par contre le classes12 ne dialoguera pas correctement avec un serveur oracle 11 ;)
Sinon, comment réaliserais-t-on une application qui devrais discuter avec deux serveurs oracles de version différente?
La liste des rétro compatibilités est ici
http://www.oracle.com/technology/tec...faq.html#02_02
je cite:
dans le même ordre d'idée:Citation:
JDBC 10.2.0 drivers can talk to RDBMS
11.2.0
11.1.0
10.2.0
10.1.0
9.2.0
9.0.1
8.1.7
Which JDBC drivers support which versions of Javasoft's JDK?
Citation:
........
10.2.0 OCI and THIN Driver - JDK 1.2.x, JDK 1.3.x, JDK 1.4.x, and JDK 5.0.x
........