query主要支持HQL(Hibernian查询语言,是查询对象的)。
query用来查询对象的条目,与get和load方法不同的是,get和load必须知道对象的id才能查询,相当于sql的findxxById方法。
public void testQuery(){
Session session = HibernateUtils.getSession();
try {
session.beginTransaction();
//select.. 可以省略Hibernian根据方言翻译成特定的sql查询数据库
// from 后接的是实体,所以U大写
Query query = session.createQuery("from User");
query.setFirstResult(0);//index设置从第几条开始查询,下标从0开始
query.setMaxResults(2);//pagesize
List userList = query.list();
for(Iterator iter = userList.iterator();iter.hasNext();){
User u =(User)iter.next();
System.out.println("u.id = " + u.getId());
System.out.println("u.name = " + u.getName());
}
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}