一、在ArticleDao中添加分页查询的方法:
/**
* 分页查询
* @param hql 查询的条件
* @param offset 开始记录
* @param length 一次查询几条记录
* @return
*/
public List queryForPage(final String hql,final int offset,final int length);
/** *//**
* 查询所有记录数
* @param hql 查询的条件
* @return 总记录数
*/
public int getAllRowCount(String hql);
二、在ArticleDaoImpl中给出相应方法的具体实现:
/**
查询所有记录数 *
@return 总记录数 */ public int getAllRowCount(String hql) { return getHibernateTemplate().find(hql).size(); }
/**
分页查询 *
@param hql
查询的条件
@param offset
开始记录
@param length
一次查询几条记录
@return */ public List queryForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list; }
三、在ArticleService中添加方法分页查询的方法:
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int currentPage);
四、在ArticleServiceImpl中给出相应方法的具体实现:
/**
分页查询
@param currentPage 当前第几页
@param pageSize 每页大小
@return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int page){
final String hql = "from Article";
int allRow = articleDao.getAllRowCount(hql);
int totalPage = PageBean.countTotalPage(pageSize, allRow);
final int offset = PageBean.countOffset(pageSize, page);
final int length = pageSize;
final int currentPage = PageBean.countCurrentPage(page);
List list = articleDao.queryForPage(hql,offset, length); //"一页"的记录
//把分页信息保存到Bean中
PageBean pageBean = new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setCurrentPage(currentPage);
pageBean.setAllRow(allRow);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
return pageBean;
}
最后一步,根据需要,在分页页面上的相应位置进行配置。基本配置如下:
首页
上一页
/s:if
首页
[url=...?page=上一页[/url]
…
/s:else
…
">下一页
">尾页
一、在ArticleDao中添加分页查询的方法:
/**
* 分页查询
* @param hql 查询的条件
* @param offset 开始记录
* @param length 一次查询几条记录
* @return
*/
public List queryForPage(final String hql,final int offset,final int length);
/** *//**
* 查询所有记录数
* @param hql 查询的条件
* @return 总记录数
*/
public int getAllRowCount(String hql);
二、在ArticleDaoImpl中给出相应方法的具体实现:
/**
查询所有记录数 *
@return 总记录数 */ public int getAllRowCount(String hql) { return getHibernateTemplate().find(hql).size(); }
/**
分页查询 *
@param hql
查询的条件
@param offset
开始记录
@param length
一次查询几条记录
@return */ public List queryForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list; }
三、在ArticleService中添加方法分页查询的方法:
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int currentPage);
四、在ArticleServiceImpl中给出相应方法的具体实现:
/**
分页查询
@param currentPage 当前第几页
@param pageSize 每页大小
@return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int page){
final String hql = "from Article";
int allRow = articleDao.getAllRowCount(hql);
int totalPage = PageBean.countTotalPage(pageSize, allRow);
final int offset = PageBean.countOffset(pageSize, page);
final int length = pageSize;
final int currentPage = PageBean.countCurrentPage(page);
List list = articleDao.queryForPage(hql,offset, length); //"一页"的记录
//把分页信息保存到Bean中
PageBean pageBean = new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setCurrentPage(currentPage);
pageBean.setAllRow(allRow);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
return pageBean;
}
最后一步,根据需要,在分页页面上的相应位置进行配置。基本配置如下:
首页
上一页
/s:if
首页
[url=...?page=上一页[/url]
…
/s:else
…
">下一页
">尾页
/s:if
下一页
尾页
/s:else
共 value="pageBean.allRow" />条记录, value="pageBean.totalPage" />页
至此,网站的分页功能就完成了。
/s:if
下一页
尾页
/s:else
共 value="pageBean.allRow" />条记录, value="pageBean.totalPage" />页
至此,网站的分页功能就完成了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。