SSH中怎样通过getHibernateTemplate()实现分页?我现在用的方法是:
Query query=getSession().createQuery(queryString);
query.setFirstResult((currentPage-1)*lineSize);
query.setMaxResults(lineSize);
return query.list();
我的疑问是:
现在我的DAO既然继承了HibernateDaoSupport,怎样用HibernateDaoSupport中的方法实现分页或者
怎样用getHibernateTemplate()实现分页
Query query=getSession().createQuery(queryString);
query.setFirstResult((currentPage-1)*lineSize);
query.setMaxResults(lineSize);
return query.list();
我的疑问是:
现在我的DAO既然继承了HibernateDaoSupport,怎样用HibernateDaoSupport中的方法实现分页或者
怎样用getHibernateTemplate()实现分页
解决方案 »
- 这样写超链接传参有问题么?
- Acegi 何时修改了我的request?
- tomcat问题
- java.lang.SecurityException: Access to default session denied
- 初学者问题(JSP调用JavaBean)
- Struts的数据源如何供普通类使用???/
- jsp servlet 怎么判断页面获取的数据与数据库的数据一致 要有代码
- java(jsp)的float小数位保留长度问题,在线等待立即给分
- 进来看看,怎样判断并验证输入的信息?
- java如何循环解析报文里面节点值
- Hibernate 查询
- fb.getTxt_regname 找不到符号,==运算符不能应用于
但是这样似乎不是你要的做法
*
* @param hql传入的hql语句
* @param curPage当前页
* @param pageSize每页显示大小
* @return
*/
public List doSplitPage(final String hql,final int curPage,final int pageSize){
//调用模板的execute方法,参数是实现了HibernateCallback接口的匿名类,
return (List) super.getHibernateTemplate().execute(new HibernateCallback(){
//重写其doInHibernate方法返回一个object对象,
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
//创建query对象
Query query=session.createQuery(hql);
//返回其执行了分布方法的list
return query.setFirstResult((curPage-1)*pageSize).setMaxResults(pageSize).list();
}
});
}楼主试一试!
如果要是结果集需要有分页信息的话,还需要在函数里先查询一下结果总数,然后构造一个自定义的pager对象,这个对象可以计算出首页,上一页,下一页,尾页,总页数,记录数等信息
// TODO Auto-generated method stub
// System.out.println(getSession().createSQLQuery("select *from course limit 3"));
// System.out.println(getHibernateTemplate().find("From Course").size());
int totll=getHibernateTemplate().find("from Course").size();
return new HashSet<Course>(getHibernateTemplate().find("select c from Course c")
.subList(pageNow*pageSize>=totll?totll:pageNow*pageSize,
(pageNow*pageSize+pageSize)>=totll?totll:pageNow*pageSize+pageSize));
}
网上没找到有关getHibernateTemplate()方法来实现分页,自已写了一下可以参考,不过建意不要用这种方法来分页,可以用自已写个tag来实现分页很好用的