Ho un accesso di classe che ha userId
, username
e password
.selezionare la query in sospensione con la clausola where
Per un utente di accesso Sto verificando username
e password
e ottengo userId
. Se userId
non è zero, verrà visualizzata la pagina iniziale. Sto cercando di farlo in letargo. Ma la mia domanda non sta funzionando
public int userLogin(Login login)
throws MySQLIntegrityConstraintViolationException, SQLException,
Exception {
Session session = HibernateUtil.getSessionFactory().openSession();
int userId = 0;
try {
session.beginTransaction();
String hql = "Select log.userId from Login log where log.userName=:userName
and log.password=:password";
System.out.println(hql);
Query query = session.createQuery(hql);
query.setParameter(":userName", login.getUserName());
query.setParameter(":password", login.getPassword());
List result = query.list();
System.out.println("resultset:"+result);
Iterator iterator = result.iterator();
while(iterator.hasNext()){
userId = (int) iterator.next();
}
} catch (HibernateException e) {
if (session.getTransaction() != null) {
session.getTransaction().rollback();
}
} finally {
session.close();
}
@AbhikChakraborty, Nessuna necessità di ":" :) –
Hai qualche eccezione? O solo una lista dei risultati vuota? Per favore pubblica più dettagli su _ "la mia query non funziona" _. – icza
Quindi, quale errore si sta affrontando? qualsiasi eccezione .. – RE350