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.
Mentre qui sotto il codice che manipola l'SQL con la funzione aggiungiFilmcodice: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); } })
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!

Rispondi quotando