搜档网
当前位置:搜档网 › Query进行HQL查询

Query进行HQL查询

1.不带参数的查询
Query query=session.createQuery("from User");

2.带参数的查询 (命名参数在查询字符串中是形如:name的标识符)
Query query=session.createQuery("from User where username=:username");
query.setString("username","admin");
将username参数设置为admin
也可以使用集合类参数 (在sql语句中使用in关键字指向一个命名参数列表,然后使用setParameterList()来设置参数:)
List names=new ArrayList();
names.add("admin");
names.add("test");
Query query=session.createQuery("from User where username in (:namesList)");
query.setParameterList("namesList",names);

Query使用问号参数时与JDBC不同,Hibernate对参数从0开始计数。下例中演示了如何使用JDBC风格的问号(?)参数
Query query=session.createQuery("from User where username=?");
query.setString(0,"admin");

3.取得List结果集
List list=query.list();

4.有2中方法取得迭代结果集,
Iterator it1=query.iterate();
Iterator it2=query.list().iterator();
while(it2.hasNext())
{
User user=(User)it2.next();
}

其中第2种方法要好


5.取得一个对象
如果你知道当前查询只会返回一个对象,则可使用list()的快捷键uniqueResult()来取得一个对象
Query query=session.createQuery("from User where username=?");
query.setString(0,"admin");
User user=(User)query.uniqueResult();

6.标量查询







相关主题