前台只显示当前需要显示的内容,这就要求前台向后台传入当前页数和每页的大小,然后根据他们从数据库中查询所需要的数据,这样对于数据库中有很多数据的来说大大提高了前台的响应速度。
1.获得总页数
public int getAllSize(String sql) {
return ((Long) this.hibernateTemplate.getSessionFactory()
.getCurrentSession().createQuery("select count(*) "+sql)
.uniqueResult()).intValue();
}
2.根据当前页和页的大小查询数据
public List<TabExpert> getTabExpertListByHql(String sql, int curPage,
int pageSize) {
return this.hibernateTemplate.getSessionFactory()
.getCurrentSession().createQuery(sql)
.setFirstResult((curPage-1)*pageSize)
.setMaxResults(pageSize)
.list();
}
3.后台分页
List<TabExpert> tabExperts = tabExpertSercive.getTabExpertListByHql(
sql, curPage, pageSize);
int listSize = tabExpertSercive.getAllSize(sql); // 总数
// 总页数
int allPage;
if (listSize % pageSize == 0) {
allPage = listSize / pageSize;
} else {
allPage = listSize / pageSize + 1;
}
转载于:https://blog.51cto.com/hatch/1641276