日期:2014-05-19  浏览次数:20576 次

求助hibernate 登陆
 public boolean findByNameAndPassword(Person person) {
 boolean result = true;
Transaction tx = null;
 SessionFactory sf = this.sessionFactory;
 Session session = sf.getCurrentSession();
 try{
 tx = session.getTransaction();
tx.begin();
 
Query q = session
      .createQuery("select person(id) from person where username=:username and password=:password");
    q.setString("username",person.getUsername());
    q.setString("password", person.getPassword());
    if (q.list().isEmpty()) 
     result = false;
    }

    tx.commit();
    
 } catch (Exception e) {
e.printStackTrace();
if (tx != null && tx.isActive()) {
try {
// Second try catch as the rollback could fail as well
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}

}
              return result;

}

我想在 ssh上从数据库上的信息登陆 但是query感觉写的有问题  
表是 person [id username password]
想返回一个result =true; 感觉query那写的不对 求指教

------解决方案--------------------
list判断是否为空最好用两种方式结合即:null!=q.list()&&q.list().size() != 0