Недавно только что изменил мои операторы в SQL на подготовленные операторы по соображениям безопасности, и вот что я придумала ..
К сожалению, в результате не может найти ошибку на
"SELECT * FROM owner WHERE username = ? AND" + "password = ?;";
Вся ошибка:
Не удается найти символ: символ: метод prepareStatement (java.lang.String) расположение: переменная dbAccess типа HolidayExchange.DBAccess
Я понимаю, что он находит строку, когда она должна быть подготовлена, но так я всегда вижу в примерах и т. Д.
Возможно, я делаю что-то идиотское, но любая помощь в решении этой проблемы будет очень полезна!
Весь метод:
DBAccess dbAccess = new DBAccess ();
String sql = "SELECT * FROM owner WHERE username = '?' AND"+
" password = '?'";
PreparedStatement ps = dbAccess.prepareStatement(sql);
ps.setString(1,u);
ps.setString(2,p);
ResultSet rs = dbAccess.executeQuery2(ps);
User user = new User();
while (rs.next()){
user.setFirstname(rs.getString("firstname"));
user.setSurname(rs.getString("surname"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
rs.close();
dbAccess.close();
if(user.getUsername().length()==0){
return null;
}else{
return user;
}
} catch (Exception e) {
return null;
}
}`