ciao a tutti
non riesco a trovare da nessuna parte la sintassi esatta per effettuare delle query parametriche in java usando mySQL, qualcuno mi potrebbe dare qualche consiglio o postarmi qualche link?
grazie a tutti
ciao a tutti
non riesco a trovare da nessuna parte la sintassi esatta per effettuare delle query parametriche in java usando mySQL, qualcuno mi potrebbe dare qualche consiglio o postarmi qualche link?
grazie a tutti
Hai due possibilità: o credi la stringa SQL in modo dinamico (non è sempre possibile!!):
Oppure utilizzi PreparedStatement, che offre un'interfaccia più semplice da usare (ipotizzando che "valoreCampo" sia un intero e che la tabella preveda che "campo" sia intero):codice:String sql = "SELECT * FROM Tabella WHERE campo = '" + valoreCampo + "'";
Quindi invocherai il metodo executeQuery() sull'oggetto PreparedStatement.codice:String sql = "SELECT * FROM Tabella WHERE campo = ?"; PreparedStatement pstmt = conn.prepareStatement( sql ); pstmt.setInt(1, valoreCampo);
Quest'ultima opzione ti consente di utilizzare campi Blob e di altro tipo in modo semplice e veloce.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
grazie mile..
ma non esiste anche un metodo con i Parameters, il mio problema è evitare la SQLinjection in un sistema di login..
grazie
Per evitare SQL injection devi controllare con delle procedure il valore passato in input. Per esempio, verifichi che il valore di login non sia tale da permettere injection. In generale pero' utilizzando il secondo approccio non dovresti avere questo tipo di problemi, in quanto non costruisci la stringa in maniera "testuale".
Saluti,
Pasquale Congiustì.