Hibernate数据库分页

前台只显示当前需要显示的内容,这就要求前台向后台传入当前页数和每页的大小,然后根据他们从数据库中查询所需要的数据,这样对于数据库中有很多数据的来说大大提高了前台的响应速度。

    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;

}


你可能感兴趣的:(Hibernate,数据库,分页)