一、控制分页Query的两个方法是什么?
一是:setFirstResult(int firstResult):设定从那个对象开始检索。
二是:setMaxResults(int maxResult):设置一次最多能检索出对象的数目。
二、例子
1.主要用到的语句
代码如下(示例):
例如:
//从第一行开始,提取前5个对象(记录)
Query query=session.createQuery(“from User”);
query.setFirstResult(0);
query.setMaxResults(5);
List result=query.list();
2.实现的分页查询
查总的记录数,分页查询给出接口,算一下哪页都有哪些记录;分页从哪个对象开始记录,要知道分页的大小,算出那一页序号开始的记录。
要看第三页的分页显示,一页显示十条。
代码如下(示例):
public void testPageQuery() {
Configuration cfg = null;
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try{
sf =HibernateUtil.getSessionFactory();//sessionFactory单态模式
session=sf.getCurrentSession();//保证每个读写线程有唯一的session的实例
ts = session.beginTransaction();
Query query = session.createQuery(" from User u");
query.setFirstResult(0);
query.setMaxResults(3);
List user =query.getResultList();
for(User u:users)
{
System.out.println(u.toString());
}
ts.commit();
}catch(HibernateException e) {
e.printStackTrace();
if(ts!=null)
{ts.rollback();}}
finally {
//session.close();
//sf.close();
}
}
总结
通过setFirstResult(int firstResult)设定从那个对象开始检索;setMaxResults(int maxResult):设置一次最多能检索出对象的数目,进行控制分页。