Questa è la riga del form dove inserisco la stringa che da problemi
codice:
<tr>
<td width="30%">Nome ricetta</td>
<td width="70%"><input type="text" name="nome" maxlength="40"/></td>
</tr>
Questa è la parte della servlet che preleva tale stringa e la invia alla classe controller
codice:
String nome = request.getParameter("nome");
... //qui l'acquisizione degli altri dati
//Costruisco l'oggetto da passare come parametro
Ricetta ricetta = new Ricetta(nome,descrizione,tempo,difficolta,tipo,ingrediente1,ingrediente2,ingrediente3,autore);
//passo al controller
String esitoinserimento = RicettaController.creaRicetta(ricetta);
...
Il controller passa semplicemente il parametro alla classe di dominio
codice:
public static String creaRicetta(Ricetta ricetta) {
return (Ricetta.creaRicetta(ricetta));
}
Costruttore dell'oggetto Ricetta, metodo che restituisce il nome e passaggio alla classe DAO
codice:
//qui sopra ci sono le dichiarazioni delle variabili
public Ricetta(String nomeR, String descrizioneR, int tempoR, int difficoltaR, String tipoR, String ingr1R, String ingr2R, String ingr3R, String autoreR) {
nome = nomeR;
descrizione = descrizioneR;
tempo = tempoR;
difficolta = difficoltaR;
ratingMedio = 0;
dataScelta = "";
tipo = tipoR;
ingrediente1 = ingr1R;
ingrediente2 = ingr2R;
ingrediente3 = ingr3R;
autore = autoreR;
}
...
public String getNome() {
return nome;
}
...
public static String creaRicetta(Ricetta ricetta) {
return RicettaDAO.creaRicetta(ricetta);
}
infine l'inserimento da parte della classe DAO
codice:
...
PreparedStatement insertRicetta3ingr = null;
...
try {
conn = connection.getConnection();
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
insertRicetta3ingr = conn.prepareStatement("INSERT INTO ricetta (nome, descrizione, tempoPreparazione, difficolta, tipoPortata, ingrediente1, ingrediente2, ingrediente3, autore)" +
" VALUES (?,?,?,?,?,?,?,?,?);");
...
insertRicetta3ingr.setString(1,ricetta.getNome());
... //set degli altri parametri che funzionano sempre
insertRicetta3ingr.executeUpdate();
conn.commit();
...
//qui sotto le catch