Ho il codice seguito in un servlet -query SQL eseguire con PreparedStatement
String loginID = request.getParameter("loginId").toString();
String loginPassword = request.getParameter("loginPassword").toString();
String strSQLcount = "SELECT COUNT(*) as 'Number Of Match' "
+ "FROM persons " + "WHERE (password =? AND id =?);";
PreparedStatement prepareSQL = connection
.prepareStatement(strSQLcount);
prepareSQL.setString(1, loginPassword);
prepareSQL.setString(2, loginID);
ResultSet numOfMatchResult = prepareSQL.executeQuery();
// now we know number of matchs ...
int numOfMatch = numOfMatchResult.getInt(1);
Quando sulla corsa e raggiungere la linea di int numOfMatch = numOfMatchResult.getInt(1);
si genera l'eccezione - java.sql.SQLException
. L'ho controllato e l'ho visto perché lo executeQuery()
non ha recuperato nessuno. si verifica anche se ho nella tabella persons
, creata con MySQL, i 2 campi - id (text)
con valore "300" e password (text)
con valore "500". e naturalmente lo controllo quando loginID
e loginPassword
con gli stessi 2 valori. Ho controllato tutte le altre cose sulla connessione al DB ed era OK .. quindi penso che il problema sia nella sintassi SQL in strSQLcount
.
Mostrare il messaggio/traccia Eccezione. Indica se il tuo codice è mai stato collegato a quel database specifico. – Javier