Salut.

Je voudrais réaliser un programme Java qui enregistre des noms de personnes dans une base de données Access.
Mais je rencontre des erreurs donc j'aimerais avoir de l'aide. Voici le plan de mon programme sous NetBeans :
Nom : Capture.PNG
Affichages : 998
Taille : 11,4 Ko

et voici mes 3 classes :
1) TestAccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public class TestAccess {
 
    public static void main(String[] args) throws SQLException {
        String nom = "", prenom = ""; 
        int age = 0;
        Personne pers = new Personne(nom, prenom, age);
        pers.saisie();
         MSAccessBase db = new  MSAccessBase("c:\\Users\\KABRE\\Documents\\TestAccessDB.accdb", "KABRE", "");
        String rq = "insert into personne values ('"+pers.getNom()+"', '"+pers.getPrenom()+"', '"+pers.getAge()+"')";
        db.SQLUpdate(rq);
    }
}
2) Personne
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
 
public class Personne {
    private String nom;
    private String prenom;
    private int age = 0;
 
    // definition du condtructeur
    public Personne(String n, String p, int a)
    {
        this.nom = n;
        this.prenom = p;
        this.age = a;
    }
 
    // definition des accesseurs
    public String getNom()
    {
        return this.nom;
    }
    public String getPrenom()
    {
        return this.prenom;
    } 
        public int getAge()
    {
        return this.age;
    }
    // une opreration de classe
    public void saisie()
    {
        Scanner sc = new Scanner(System.in);
 
            System.out.println("Saisir Nom___________________________: ");
            String nom1 = sc.nextLine();
            sc.nextLine();
            System.out.println("Saisir Prenom________________________: ");
            String prenom1 = sc.nextLine();
            System.out.println("Saisir Age:__________________________: ");
            int age1 = sc.nextInt();
            System.out.println("--------------- Fin Entrée ---------------------"); 
    }
}
3) MSAccessBase
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
 
public class MSAccessBase {
 
    // Chemin de la base
    private String path;
 
    // Nom d'utilisateur
    private String user;
 
    // Mot de passe
    private String password;
 
    // Connection vers la base
    private Connection connection;
 
 
    /* Constructeur */
    public MSAccessBase(String path, String user, String password) {
        this.path = path;
        this.user = user;
        this.password = password;
    }
 
 
    /*
    *Connection à la base
    *@return : true si la connexion est réussie, false si échouée
    */
    public boolean connect() {
        try {
            // Chargement du driver ODBC
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
            // Connexion à la base
            String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + path;
            connection = DriverManager.getConnection(connectionString, user, password);
        }
        catch (ClassNotFoundException e) {
            System.out.println("Problème avec le driver ODBC");
            return false;
        }
        catch (SQLException e) {
            System.out.println("Impossible de se connecter à la base");
            return false;
        }
        return true;
    }
 
 
    /*
    *Déconnexion de la base
    *@return : true si la déconnexion est réussie, false sinon
    */
    public boolean disconnect() {
        try {
            connection.close();
            return true;
        }
        catch (SQLException e) {
            return false;
        }
    }
 
    /*
    *Envoi d'une requête de sélection
    *@param : sql
    *@return : result
    */
    public ResultSet SQLSelect(String sql) throws SQLException {
        Statement statement = null;
        ResultSet result = null;
        try {
            statement = connection.createStatement();
            result = statement.executeQuery(sql);
            return result;
        }
        catch (SQLException e) {
            result.close();
            statement.close();
            return null;
        }
    }
 
    /*
    *Envoi d'une requête de mise à jour (insert, update, delete)
    *@param : sql
    */
    public void SQLUpdate(String sql) throws SQLException {
        Statement statement = null;
        try {
            statement = connection.createStatement();
            statement.executeUpdate(sql);
        }
        catch (SQLException e) {
 
        }
    }  
}
et voici l'erreur:
Exception in thread "main" java.lang.NullPointerException
at testaccess.MSAccessBase.SQLUpdate(MSAccessBase.java:99)
at testaccess.TestAccess.main(TestAccess.java:17)
C:\Users\KABRE\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 13 seconds)
Merci