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 :
et voici mes 3 classes :
1) TestAccess
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 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); } }
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 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 ---------------------"); } }
et voici l'erreur:
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) { } } }
MerciException 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)
Partager