根据hql来分页查询对象:
/**<p>
* Description:根据hql来分页查询对象
* </p>
* @param hsql 要查询的条件
* @param firstRow 第一行
* @param maxRow 行数
* @return 查询结果list
* @since 2008-12-5
* @author xx
*/
public List<Gwszb> queryByHQL(String hql, int firstRow) {
Query query =getSession().createQuery(hql);
query.setFirstResult(firstRow);
query.setMaxResults(Constants.MAX_ROW);
return query.list();
}
通过hql查询全部的纪录总数,一般为long我们用int:
/**<p>
* Description: 通过hql查询全部的纪录总数
* </p>
* @param hql查询所有纪录总数的hql
* @return 返回纪录总数
* @since 2008-12-9
* @author xx
*/
public int getQueryByHQLNum(String hql) {
Query query =getSession().createQuery(hql);
int i=Integer.parseInt((query.iterate().next()).toString());
return i;
}
其他:
/**<p>
* Description:通过记录总数得到页的总数
* </p>
* @param totalNum 纪录总数
* @return 页的总数
* @since 2008-12-9
* @author xx
*/
public static int getAllPage(int totalNum){
return (Constants.MAX_ROW+totalNum-1)/Constants.MAX_ROW;
}
/**<p>
* Description: 通过当前页得到当前页的起始纪录
* </p>
* @param currentPag 当前的页数
* @return 得到 当前页的开始记录数
* @since 2008-12-9
* @author xx
*/
public static int getCurrentPageStar(int currentPag){
return (currentPag-1)*Constants.MAX_ROW;
}