BaseDaoImpl.getPageBean()
在项目中,有很多页面都是要分页的,如果我们在每一个在控制层中为pageBean准备数据,那样的话,待会的复用性就变差了,有很多重复的代码,而这些代码只因domain里面的基类不同而已,比如在BBS论坛中,用户显示要分页,发表的主题要分页,用户的回复要分页,如果我们在每一个对应的action准备jsp要显示的数据,是不是很麻烦呢,不光是麻烦,而且还是繁琐。所以么...就把它提取出来。
public PageBean getPageBean(int pageNum, HqlHelper hqlHepler){
}
在这里,我说明一下,pageNum是当前那一页,HqlHelper写的是一个工具类,先不要管它里面是怎么实现的,我在后面会把HqlHelper这个代码方法写出来。因为这样,以后就只需要构建hqlHelper查询语句,准备数据的时候,我就能实现分页。
List<Object> parameters = hqlHelper.getParameters();
int pageSize = Configuration.getPageSize(); //为了以后的程序维护,把这类数据都写到properties文件中。
//查询记录数
Query countQuery = getSession().createQuery(hqlHelper.getQueryCountHql()); //生成查询对象。
for(int i=0;i<parameters.size();i++){
countQuery.setParameter(i,parameters.get(i));
}
int count = ((long) countQuery.uniqueResult()).intValue();
//查询一段数据列表
Query listQuery = getSession().createQuery(hqlHelper.getQueryListHql()); //生成查询对象
for(int i= 0; i<parameters.size();i++){
listQuery.setParameter(i,parameters.get(i));
}
listQuery.setFirstResult((pageNum-1)*pageSize);
listQuery.setMaxResults(pageSize);
List list = listQuery.list(); //查询
return new PageBean(pageNum,pageSize,count,list); //这个类在我前面的文章已经说到了