encapsulation d'une connexion JDBC
Bonjour j'essaie d'encapsuler une connexion JDBC avec les classes suivantes:
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
| 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());
}
} |
voici la classe main
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
| 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());
}
}
} |
j'ai le message d'erreur suivant
Code:
1 2 3
| Exception in thread main java.lang.NullPointerException
at connexionEncapsulee.getConnexion(ConnexionEncapsulee.java:19)
at TestConnexionEncapsulee.main(TestConnexionEncapsulee.java:14) |