日期:2014-05-19 浏览次数:20906 次
public List queryForPage(int currentPage,int pageSize) { ..................//sessionFactory ..................//Transaction Query query=session.createQuery("User.class"); int firstRecord=(currentPage-1)*pageSize;//为什么要-1?这句表示什么意思? query.setFirstResult(firstRecord);// 这是从第几页开始显示记录?为什么是firstRecord? query.seyMaxResults(pageSize); .....................//commit,close; }
int firstRecord=(currentPage-1)*pageSize;
------解决方案--------------------
具体的分页其实是涉及到数据库的,当你一次获取大量的数据库记录的时候,可能需要较长的查询时间,但在我们实际的情况下一次只是浏览其中的一部分记录,也就是我们在网页上所看到的分页的某一页。
那么,我们就可以这样进行处理,当你具体查看某一页的时候,我们只从数据库查询你查看这一页的记录,而不是把所有的记录都查询出来,这样就减少了查询时间,从而提高网页的的响应速度。
------解决方案--------------------
int firstRecord=(currentPage-1)*pageSize
如果说你的坐标是从0开始的,那么
当第一页第一条记录 firstRecord=(1-1)*5=0 (注意:5是记录数)
第二页第一条记录 firstRecord=(2-1)*5 =5
依次类推
int firstRecord=(currentPage-1)*pageSize;//为什么要-1
一般编号都是从0123这样的顺序,而页码 没有第0页
------解决方案--------------------