Mi sembra di aver risolto, ditemi un po' che ne pensate. Questo è il metodo di inserimento:
Nell'azione del pulsante che gestisce il salvataggio (e quindi richiama il metodo di cui sopra) ho messo uncodice:public static void insertMenu(String field) { PreparedStatement statement = null; //verifico che l'utente non abbia inserito un campo vuoto try { if (field == null || field.isEmpty()) { JOptionPane.showMessageDialog(bla1); return; } //inserisco fisicamente nel db il nuovo menu statement = connection.prepareStatement("INSERT INTO Menu VALUES (NULL, ?)"); statement.setString(1, field); result=statement.executeUpdate(); //catturo le eccezioni e chiudo lo statement per liberare risorse } catch (SQLIntegrityConstraintViolationException ex) { JOptionPane.showMessageDialog(bla2); } catch (SQLException e) { JOptionPane.showMessageDialog(bla3); Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, e); } finally { if (statement != null) { try { statement.close(); } catch (SQLException ex) { Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex); } } } }
if (DBConnection.result==1) allora fai quello che devi (per il momento solo attivare altri campi) altrimenti rimani come stai.
result l'ho dichiarata public e static.
EDIT: ho subito trovato l'inghippo, se faccio un inserimento che va a buon fine dopo non va più probabilmente per via del fatto che result rimane su 1... ho aggiunto quindi un result=0 prima di result=statement.executeUpdate();
adesso mi sembra che va

Rispondi quotando