Я пытаюсь сделать более общий метод для входа в систему.
public boolean login(String login, String pass)
throws ClassNotFoundException, SQLException {
open();
q = s.createQuery("select u from Usuario u
where u.login =:id1 and u.pass = :id2");
q.setString("id1", login);
q.setString("id2", pass);
if(q.uniqueResult()!=null)
return true;
else
return false;
}
Мой код работал нормально, но теперь я хотел сделать что-то вроде:
public boolean login(String login, String pass)
throws ClassNotFoundException, SQLException {
return paramFunction("select u from Usuario u
where u.login = ?1 and u.pass=?2", login, pass);
}
public boolean paramFunction(String query, Object... params){
try {
open();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
q = s.createQuery(query);
for (int i = 1; i <= params.length; i++) {
q.setParameter(i, params[i-1]);}
if (q.uniqueResult() != null)
return true;
else
return false;
но теперь я получаю:
java.lang.IndexOutOfBoundsException: Помните, что порядковые параметры основаны на 1!
, хотя вы можете видеть, что я использую 1подход.Что не так с тем, что я делаю?Спасибо за помощь!