Bonjour j'essaie d'encapsuler une connexion JDBC avec les classes suivantes:
voici la classe main
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 import java.sql.*; public class ConnexionEncapsulee { private String driver="com.mysql.jdbc.Driver"; private String chaineConnexion="jdbc:mysql://localhost/"; private String login="root"; private String password=""; private Connection connexion; public void fermerConnexion()throws SQLException { if(this.connexion!=null && !this.connexion.isClosed()) this.connexion.close(); } public Connection getConnexion()throws SQLException { try { if(this.connexion!=null || !this.connexion.isClosed()) { Class.forName(driver); this.connexion=DriverManager.getConnection( this.chaineConnexion,this.login,this.password); } return this.connexion; } catch(ClassNotFoundException ex) { throw new SQLException( "Classe introuvable "+ex.getMessage()); } }
j'ai le message d'erreur suivant
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 import javax.swing.JOptionPane; import java.sql.*; public class TestConnexionEncapsulee { /** * @param args */ public static void main(String[] args) { // TODO Raccord de méthode auto-généré Statement envoieRequete; ConnexionEncapsulee testRequete=new ConnexionEncapsulee(); try { envoieRequete=testRequete.getConnexion().createStatement(); envoieRequete.executeUpdate( "INSER INTO tblhotel (nomHotel , adresse1Hotel, codePostalHotel, communeHotel)" + " VALUE ('toti','3 promenade des champs','78000','Mantes')"); } catch(SQLException ex) { JOptionPane.showMessageDialog(null, "Erreur JDBC : "+ex.getMessage()); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Exception in thread main java.lang.NullPointerException at connexionEncapsulee.getConnexion(ConnexionEncapsulee.java:19) at TestConnexionEncapsulee.main(TestConnexionEncapsulee.java:14)
Partager