Ciao a tutti,
ecco un piccolo problema che non sono riuscito a risolvere nonostante abbia cercato (e provato) diverse soluzioni.
Ho una semplice tabella di MySQL da cui estraggo i dati composta da 4 campi. Tre di questi sono varchar e uno è int. 2 campi varchar sono impostati come obbligatori, gli altri due campi sono facoltativi. Se tralascio l'inserimento di un campo int mi stampa a video null, mentre tralasciando un varchar mi lascia la cella vuota. Come posso fare per ottenere anche nel primo caso (ovvero non inserendo il valore int) la cella vuota al posto di null?
Questo è il punto in cui ricevo i dati dal form:
Questo è il metodo di inserimento:codice://RICEVO I DATI DAL FORM ED EFFETTUO L'INSERIMENTO String author = request.getParameter("author"); String title = request.getParameter("title"); String y = request.getParameter("year"); int year = -1; if(y!=null && !y.isEmpty()){year = Integer.parseInt(y);} String remark = request.getParameter("remark"); if(author!=null && !author.isEmpty() && title!=null && !title.isEmpty() /*&& year!=null && !year.isEmpty() && remark!=null && !remark.isEmpty()*/){ BooksWorker.insert(author, title, year, remark); }
infine ecco dove vado a stampare la table:codice:public static void insert(String author, String title, int year, String remark) { try{ Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection(url, "root", "root"); String insert = "INSERT INTO books(author, title, year, remark) VALUES(?, ?, ?, ?)"; PreparedStatement ps = c.prepareStatement(insert); ps.setString(1, author); ps.setString(2, title); //YEAR DEVE ESSERE POSITIVO, SENNO' LO SETTO A NULL if(year>0){ps.setInt(3, year);} else{ps.setNull(3, java.sql.Types.INTEGER);} ps.setString(4, remark); ps.executeUpdate(); c.close(); } catch(Exception ex){ Logger l = Logger.getLogger(BooksWorker.class.getName()); l.log(Level.SEVERE, null, ex); } }
codice:Iterator<String> it = list.iterator(); while(it.hasNext()){ id = Integer.parseInt(it.next()); out.print("<tr>"); for(int i = 0; i < 4; i++){ out.print("<td>"); out.print(it.next()); out.print("</td>"); } out.print("<td>"); String box = "<input name=r" + id + " type='checkbox'>"; out.print(box); out.print("</td>"); out.print("</tr>");

Rispondi quotando