新分页方法,提高代码的重用性

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); //这个类在我前面的文章已经说到了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值