Bonjour à tous,
J'essaie de me connecter à une base de données se trouvant à une certaine adresse IP. Cependant, j'ai une erreur que je n'arrive pas à résoudre (je suis débutant en jdbc). Voici ma classe qui gère la connexion avec la base de données :
En ce qui concerne l'installation de jdbc, j'ai bien ajouté le connecteur (mysql-connector-java-5.0.5-bin.jar) dans les librairies du projet.
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 public class ConnexionBDD { // Le driver pour se connecter à la base de données private static String driver = "com.mysql.jdbc.Driver"; // L'URL de la base de données private static String url = "jdbc:mysql://192.168.2.24/"; // Le login pour la connexion à la base de données private static String login = "dodo"; // Le mot de passe pour la connexion à la base de données private static String motDePasse = "dada"; // La connexion private static Connection connexion = null; // Le demande de requête private static Statement demande = null; // Le résultat de la requête private static ResultSet resultat = null; /** * Retourne la connexion à la base de données. * * @param baseDeDonnées La base de données sur laquelle se connecter * @return connexion Connexion à la base de données * @since 1.0 */ private static Connection connexion(String baseDeDonnees) { // Si la connexion est null if (connexion == null) { try { // On construit l'URL de la base de données url += baseDeDonnees; // On récupère la connexion à partir du login et du mot de passe connexion = DriverManager.getConnection(url, login, motDePasse); } catch (SQLException exception) { // On affiche la pile d'appel de l'exception exception.printStackTrace(); // On affiche un message System.out.println("La connexion à la BDD n'a pas été établie"); } } // On retourne la connexion return connexion; } /** * Exécute une requête SQL de type "SELECT ..." et retourne le résultat. * * @param baseDeDonnees La base de données sur laquelle se connecter * @param requete La requete à exécuter * @throws SQLException Exception levée lors de la demande ou la requête * @return resultat Résultat de la requete SQL * @since 1.0 */ public static ResultSet executeRequete(String baseDeDonnees, String requete) throws SQLException { // On essaie le chargement du driver try { // Chargement du driver de la base de données Class.forName(driver); } catch (ClassNotFoundException exception) { // On affiche la pile d'appel de l'exception exception.printStackTrace(); // On affiche un message System.out.println("Le driver jdbc n'a pas été trouvé"); } // On récupère la connexion à la base de données connexion = connexion(baseDeDonnees); // On crée une demande de requête demande = connexion.createStatement(); // On exécute la requête resultat = demande.executeQuery(requete); // On ferme la connexion // Si la connexion n'est pas null if (connexion != null) { try { // On ferme la connexion connexion.close(); } catch (SQLException exception) { // On affiche la pile d'appel de l'exception exception.printStackTrace(); // On affiche un message System.out.println("La connexion à la base de données n'a pas" + " été fermée"); } } // On retourne le résultat de la requête return resultat; } }
L'exception se produit lors de la ligne suivante :
Et voici mon exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // On récupère la connexion à partir du login et du mot de passe connexion = DriverManager.getConnection(url, login, motDePasse);
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 run: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException MESSAGE: Connection refused: connect STACKTRACE: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at java.net.Socket.connect(Socket.java:469) at java.net.Socket.<init>(Socket.java:366) at java.net.Socket.<init>(Socket.java:209) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:173) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:267) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2739) at com.mysql.jdbc.Connection.<init>(Connection.java:1553) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at fr.apreslaclasse.alcgged.modele.ConnexionBDD.connexion(ConnexionBDD.java:57) at fr.apreslaclasse.alcgged.modele.ConnexionBDD.executeRequete(ConnexionBDD.java:96) at fr.apreslaclasse.alcgged.modele.GestionnaireDocument.rechercheID(GestionnaireDocument.java:151) at fr.apreslaclasse.alcgged.vue.FenetrePrincipale.actionPerformed(FenetrePrincipale.java:203) 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:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) 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) ** END NESTED EXCEPTION ** Last packet sent to the server was 16 ms ago. at com.mysql.jdbc.Connection.createNewIO(Connection.java:2814) at com.mysql.jdbc.Connection.<init>(Connection.java:1553) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at fr.apreslaclasse.alcgged.modele.ConnexionBDD.connexion(ConnexionBDD.java:57) at fr.apreslaclasse.alcgged.modele.ConnexionBDD.executeRequete(ConnexionBDD.java:96) at fr.apreslaclasse.alcgged.modele.GestionnaireDocument.rechercheID(GestionnaireDocument.java:151) at fr.apreslaclasse.alcgged.vue.FenetrePrincipale.actionPerformed(FenetrePrincipale.java:203) 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:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) La connexion à la BDD n'a pas été établie 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) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at fr.apreslaclasse.alcgged.modele.ConnexionBDD.executeRequete(ConnexionBDD.java:99) at fr.apreslaclasse.alcgged.modele.GestionnaireDocument.rechercheID(GestionnaireDocument.java:151) at fr.apreslaclasse.alcgged.vue.FenetrePrincipale.actionPerformed(FenetrePrincipale.java:203) 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:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) 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) BUILD SUCCESSFUL (total time: 29 seconds)
Partager