jpa 分页功能1

1.service 层
public Result findAllAdvertise(Page page,String categoryId){
    	StringBuffer sql1 = new StringBuffer();
    	StringBuffer sql2 = new StringBuffer();
    	sql1.append("select count(*) from Advertise a");
    	sql2.append("from Advertise a where 1=1");
    	if(categoryId != null && !categoryId.equals("")){
    		sql1.append(" where a.categoryId = ?");
    		sql2.append(" and a.categoryId = ?");
    		sql2.append(" order by a.createtime desc");
    		
    		page = PageUtil.createPage(page, (Long) em.createQuery(sql1.toString()).setParameter(1,categoryId).getSingleResult());
    		return new Result(page,em.createQuery(sql2.toString()).setParameter(1,categoryId).setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage()).getResultList());
    	}else{
    		sql2.append(" order by a.createtime desc");
    		page = PageUtil.createPage(page, (Long) em.createQuery(sql1.toString()).getSingleResult());
        	return new Result(page,em.createQuery(sql2.toString()).setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage()).getResultList());
    	}
    }

2.action 层

@RequestMapping("/webadmin/AderviseList.htm")
 public String AderviseList(HttpServletRequest request){
  String categoryId = request.getParameter("categoryId");
  if(categoryId ==null ||categoryId.equals("")){
   categoryId = (String)request.getAttribute("categoryId");
  }
  String currpage =request.getParameter("page");
  if(currpage == null || currpage.equals("")){
   currpage ="1";
  }
  Page page = new Page(20);
  page.setCurrentPage(new Integer(currpage));
  
  Result list = aderviseBiz.findAllAdvertise(page, categoryId);
  request.setAttribute("aderviselist", list);
  
  //查询所有类别
  List categoryList = aderviseBiz.findAllAdvertiseCategory();
  request.setAttribute("categoryList",categoryList);
     request.setAttribute("categoryId", categoryId);
  return "/webadmin/AderviseList.vm";
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值