insérer des données dans bdd : null pointer exception
Bonjour;
je souhaite insérer quelques données dans ma table, j'ai créé cette méthode que j'ai relié avec le bouton de sauvegarde et une autre pour remplir le tableau
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 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
|
public class SystemeController implements Initializable {
... //déclarations des composants fxml
private Conn conn ; //instanciation de la classe de connection
private Connection cnx = conn.Connect(); //appel méthode de connection
private PreparedStatement ps;
private ResultSet rs;
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
getSys();
} catch (SQLException ex) {
Logger.getLogger(SystemeController.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void getSys() throws SQLException {
String query = "SELECT * FROM systeme";
try {
list = FXCollections.observableArrayList();
ps = cnx.prepareStatement(query);
rs = ps.executeQuery();
while (rs.next()) {
list.add(new sysModel(rs.getString(1), rs.getString(2), rs.getString(3)));
}
} catch (Exception e) {
System.err.println("Error" + e);
}
idCol.setCellValueFactory(new PropertyValueFactory<>("id"));
sysCol.setCellValueFactory(new PropertyValueFactory<>("sys"));
descCol.setCellValueFactory(new PropertyValueFactory<>("desc"));
sysTable.setItems(null);
sysTable.setItems(list);
}
//méthode de sauvegarde qui génère l'erreur
public void insertSys() throws SQLException {
String query = "INSERT INTO systeme(sys,description) VALUES(?,?)";
try {
ps = cnx.prepareStatement(query);
ps.setString(1, txtSys.getText());
ps.setString(2, txtDesc.getText());
ps.executeUpdate();
} catch (Exception e) {
System.err.println("Error" + e);
} finally {
ps.close();
rs.close();
}
}
}//hint ici |
à la fin de ma classe j'ai ce hint "invalid method declaration"
et quand j'exécute le bouton de sauvegarde je reçoit cette erreur "Caused by: java.lang.NullPointerException" et il pointe vers le ps.close()
comment résoudre ça je vous prie.
merci