hibernate的hql查询

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:47:35
就是一个登陆检查的一个查询:
public boolean CheckLogin(UserInfo ui) {
Session session = factory.openSession();

Query query = session.createQuery("from UserInfo ui where ui.username=? and ui.password=?");

query.setParameter(0, ui.getUsername());
query.setParameter(1, ui.getPassword());

List<UserInfo> list = query.list();

session.close();
return list.size()!=0;
}

就是这3句也就是凑查询语句的
Query query = session.createQuery("from UserInfo xx where xx.username=? and xx.password=?");

query.setParameter(0, ui.getUsername());
query.setParameter(1, ui.getPassword());
还有没有其他写法?也就是把参数带进去的方法?
晕。1楼的不算。。嘎嘎 我要session.createQuery() 这样的。2楼说的我知道。也可以c.add(Restrictions.eq("password",ui.getPassword()));

Query query = session.createQuery("from UserInfo xx where xx.username=:name and xx.password=:pass");
query.setString("name",ui.getUsername());
query.setParameter("pass", ui.getPassword());

你要的是这个?

Criteria c=session.createCriteria (UserInfo.class);
c.add(Expression.eq("username",ui.getUsername()));
c.add(Expression.eq("password",ui.getPassword()));
List list=c.list();
这样.
username是UserInfo对象的一个属性 password也同理

呵呵你同意..我用了hibernate也不少时间了.若对单独对象操作就这样简单点.要不就hql.别的还就真不知道了..要不就jdbc直接写sql查吧

Query query = session.createQuery("from UserInfo xx where xx.username=:aa and xx.password=:bb");

query.setParameter("aa", ui.getUsername());
query.setParameter("bb", ui.getPassword());

直接使用session.find(java.lang.String arg0, java.lang.Object[] arg1, org.hibernate.type.Type[] arg2)
其中arg0为你的hql语句,arg1为参数对象数组,arg2参数类型数组。
建议使