Buongiorno a tutti.
Sto facendo un programmino che servirà a me per gestire il mio blog che parla di cinema. Questo piccolo programma ha una schermata introduttiva che mi chiede se voglio aggiungere un film, cancellarlo o visualizzare tutti i film nella tabella. La tabella viene creata in base all'anno e il JTextField tfAnnoVisione indica in che anno ho visto un determinato film (che non è necessariamente quello di uscita al cinema).
La form chiede i seguenti dati: AnnoVisione - anno in cui ho visto il film
Titolo
Regista
Genere
Anno - Anno effettivo di pubblicazione
Voto
e sono tutte String
Sia la funzione di creazione della tabella sia la cancellazione - che leggono da un solo JTextField - (la cancellazione l'ho provata inserendo manualmente tramite SQL e poi cancellando dal mio programma) funzionano bene, mentre la funzione di aggiunta di un film che, prese le informazioni nei JTextField, mi dovrebbe creare un oggetto Film con i relativi attributi, non funziona. Non capisco se non riesce ad inserire nel database o se proprio mi crea un oggetto che ha i campi a NULL.
Vi posto qualche frammento del codice. Talascio tutta la trafila di creazione della form con Swing e passo direttamente all'ActionListener del bottone "Submit" che è appunto quello che dovrebbe farmi l'aggiunta. Quando clicco su submit il frame di appoggio per la form si chiude in automatico per mia scelta.
codice:
this.bSubmit = new JButton ("Submit"); gbc.gridx = 1;
gbc.gridy = 6;
this.add(this.bSubmit, gbc);
this.bSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Sql add = new Sql();
try {
add.aggiungiFilm(tfAnnoVisione.getText(), tfTitolo.getText(), tfRegista.getText(), tfGenere.getText(), tfAnno.getText(), tfVoto.getText());
} catch (SQLException e1) {}
frame.setVisible(false);
}
})
Mentre qui sotto il codice che manipola l'SQL con la funzione aggiungiFilm
codice:
private static final String add1 = "INSERT INTO Film"; private static final String add2 = " (Titolo, Regista, Genere, Anno, Voto) VALUES (?,?,?,?,?)";
public void aggiungiFilm(String annoVisione, Film film) throws SQLException{ ConnessioneDB conDB = new ConnessioneDB();
Connection con = null;
PreparedStatement stmt = null;
try{
con = DriverManager.getConnection(conDB.getUrl(), conDB.getUsername(), conDB.getPassword());
String sql = add1 + annoVisione + add2;
stmt = con.prepareStatement(sql);
stmt.setString(1, film.getTitolo());
stmt.setString(2, film.getRegista());
stmt.setString(3, film.getGenere());
stmt.setString(3, film.getAnno());
stmt.setString(4, film.getVoto());
stmt.executeUpdate();
} finally {
if (stmt != null){
stmt.close();
}
if (con != null){
con.close();
}
}
}
Ringrazio in anticipo per un eventuale aiuto!