这是spring结合hibernate使用的分页查询方式:
public List findUsers(final int firstResult, final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
String q = "from User as user";
Query query = s.createQuery(q);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
List list = query.list();
return list;
}
});
}
public List findUsers(final int firstResult, final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
String q = "from User as user";
Query query = s.createQuery(q);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
List list = query.list();
return list;
}
});
}
比如在MYSQL里面的话你可以用select * from user limit firstResult,maxResults这样就可以了,页面信息的话放到另外一个对象里面就可以了,只在第一次查询的时候计算出总数放到里面,后面的翻页就是改下firstResult和maxResults的值就可以了,速度还是蛮快的