ssh的分页技术是怎么实现的
大家伙谁能给我具体的说说ssh的分页技术是怎么实现的,看得我好迷茫啊。
本来就对分页不是怎么懂。
ssh是三个框架,你想问的是哪个分页?
看看Hibernate的数据方言类的源代码
Session s=hibernateTemplate.getSessionFactory().getCurrentSession();
s.beginTransaction();
Query query=s.createQuery(hql);
query.setFirstResult(pagesize); //分页查询
query.setMaxResults(pagelength);
List<Install> installs=query.list();
s.getTransaction().commit();
MySession.getSession().put("pagenum",installs.size());
我这么做的 pagesize每页的第一条 pagelength为每页显示条数 页面中通过当前显示条数+1是否大于 pagelength来判断是否还有下一页,判断是否有上一页就判断下pagesize是否为0
继承HibernateDaoSupport类,
如:
public List<Object> findObjectList(final int page,final int pageSize){
List<Object> list=this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria=session.createCriteria(Object.class);
Criterion criterion=Restrictions.eq("role.roleId",id);
criteria.add(criterion);
criteria.setFirstResult((page-1)*pageSize);//设置每页显示的第一条记录
criteria.setMaxResults(pageSize);//设置每页显示的最大记录数
List list=criteria.list();
session.close();
return list;
});
}
/**
* 查询最大记录数
*
*/
public int pageCount(){
String hql = "select count(*) from XXX";
List list = this.getHibernateTemplate().find(hql);
Number count = 0;
if (list != null && list.size() != 0) {
count = (Number) list.get(0);
}
return count.intValue();
}
/**
* 求出最大页面maxPage
*/
public int maxPage(Integer pageSize, Integer pageCount){
int maxPage = 0;
if (pageCount % pageSize == 0) {
maxPage = pageCount / pageSize;
} else {
maxPage = pageCount / pageSize + 1;
}
return maxPage;
}