Paging with Oracle

前端 未结 6 2154
一向
一向 2020-11-22 13:01

I am not as familiar with Oracle as I would like to be. I have some 250k records, and I want to display them 100 per page. Currently I have one stored procedure which retr

6条回答
  •  天命终不由人
    2020-11-22 13:28

    In my project I used Oracle 12c and java. The paging code looks like this:

     public public List> getAllProductOfferWithPagination(int pageNo, int pageElementSize, Long productOfferId, String productOfferName) {
        try {
    
            if(pageNo==1){
                //do nothing
            } else{
                pageNo=(pageNo-1)*pageElementSize+1;
            }
            System.out.println("algo pageNo: " + pageNo +"  pageElementSize: "+ pageElementSize+"  productOfferId: "+ productOfferId+"  productOfferName: "+ productOfferName);
    
            String sql = "SELECT * FROM ( SELECT * FROM product_offer po WHERE po.deleted=0 AND (po.product_offer_id=? OR po.product_offer_name LIKE ? )" +
                 " ORDER BY po.PRODUCT_OFFER_ID asc) foo OFFSET ? ROWS FETCH NEXT ? ROWS ONLY ";
    
           return jdbcTemplate.queryForList(sql,new Object[] {productOfferId,"%"+productOfferName+"%",pageNo-1, pageElementSize});
    
        } catch (Exception e) {
            System.out.println(e);
            e.printStackTrace();
            return null;
        }
    

提交回复
热议问题