分页技术
分页技术的核心其实就是查找数据库中指定序号的数据:
下面的代码是之前用hibernate获取后台数据的分页:可以参考一下:这只是后台代码:
package com.ssh.entities; import java.util.List; public class PageBean { private List<User> list;//从数据库分页查出来的集合 private int allRows;//总记录数 private int totalPage;//总页数 private int currentPage;//当前页 public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; } public int getAllRows() { return allRows; } public void setAllRows(int allRows) { this.allRows = allRows; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } /** * @author zhangshitong * get the total pages * @param pageSize * @param allRows * @return */ public int getTotalPages(int pageSize,int allRows){ int totalPage=(allRows % pageSize==0)?(allRows / pageSize):(allRows /pageSize)+1; return totalPage; } /** * get the offset获得当前开始记录号 */ public int getCurrentPageOffset(int pageSize, int currentPage){ int offset=pageSize*(currentPage-1); return offset; } /** * 得到当前页,如果为0就从第一页开始,否则为当前页 * @param page * @return */ public int getCurrentPage(int page){ int currentPage=(page==0)? 1:page; return currentPage; } }
/** * @author zhangshitong * 分页功能实现的两个方法 * @return */ public int getAllRowCount(){ int allRows=0; String hql="From User u"; Query query=getSession().createQuery(hql); allRows=query.list().size(); return allRows; } public List<User> queryByPage(String hql, int offset, int pageSize){ List<User> list=null; Query query=getSession().createQuery(hql).setFirstResult(offset).setMaxResults(pageSize); list=query.list(); return list; }