Bonjour,
Voici mon problème :
J'ai créé une application test pour faire des essais de connexion entre ma Base de donnée access et mon code.
Tout fonctionne.
voici le code :
Maintenant je veux connecter une autre application à cette même base de donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 package programme_test; import java.sql.*; public class Programme_Test { static Connection cnx; static Statement st; static ResultSet rst; public static Connection connecterDB() throws ClassNotFoundException, SQLException{ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dataSourceName = "BaseDeDonnee" + ""; String dbURL = "jdbc:odbc:" + dataSourceName; Connection cnx = DriverManager.getConnection(dbURL, "",""); System.out.println("OK"); return cnx; } catch (Exception err) { System.out.println( "Error: " + err ); return null; } } public static void Ajouter_Image(String file_path,int color_percentage,String centered, int edge_complexity, int level){ try{ String query = "INSERT INTO Images VALUES('"+file_path+"',"+color_percentage+",'"+centered+"',"+edge_complexity+","+level+")"; cnx = connecterDB(); st=cnx.createStatement(); st.executeUpdate(query); System.out.println("Ajouté"); st.close(); cnx.close(); } catch (Exception err) { System.out.println( "Error: " + err ); } } public static void Supprimer_Image(String path_file){ try{ String query = "DELETE FROM Images WHERE path_file=?"; cnx = connecterDB(); PreparedStatement ps =cnx.prepareStatement(query); ps.setString(1,path_file); ps.executeUpdate(query); System.out.println("Bien supprimé !"); st.close(); cnx.close(); } catch (Exception err) { err.printStackTrace(); } } public static void main(String[] args) throws SQLException{ //Ajouter_Image("path1",65,"non", 80, 3); //Supprimer_Image("path1\\CIAO.jpg"); try{ cnx = connecterDB(); st=cnx.createStatement(); rst=st.executeQuery("SELECT * FROM Images"); while(rst.next()){ System.out.println(rst.getString("file_path")); System.out.println(rst.getInt("color_percentage")); System.out.println(rst.getString("centered")); System.out.println(rst.getInt("edge_complexity")); System.out.println(rst.getInt("level")); } rst.close(); st.close(); cnx.close(); } catch (Exception err) { System.out.println( "Error: " + err ); } } }
J'ai donc copié exactement le même code mais ça ne fonctionne pas.
J'ai mis ma méthode "connecterDB()" dans ma classe et dans un bouton j'ai mis ce code :
Et voici la trace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 try{ cnx = connecterDB(); st=cnx.createStatement(); rst=st.executeQuery("SELECT * FROM images"); while(rst.next()){ System.out.println(rst.getString("file_path")); System.out.println(rst.getInt("color_percentage")); System.out.println(rst.getString("centered")); System.out.println(rst.getInt("edge_complexity")); System.out.println(rst.getInt("level")); } rst.close(); st.close(); cnx.close(); } catch (Exception err) { err.printStackTrace(); }
java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at applicationvisuelle.App.connecterDB(App.java:546)
at applicationvisuelle.App.Compare_Squares(App.java:925)
at applicationvisuelle.App.ShapesButton_Version4(App.java:1770)
at applicationvisuelle.App.access$1000(App.java:30)
at applicationvisuelle.App$11.actionPerformed(App.java:1634)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Je précise que ma deuxieme application n'a rien dans son "main" (mis a part l'exécution de ma classe) tandis que dans ma première application j'utilise le mail.
Est- ce que ce serait ça ?
Avez-vous une idée ? car le driver fonctionne très bien dans l'autre application...
Partager