Hibernate条件查询下分页显示

xiaoxiao2026-10-04  12

import java.util.LinkedList; import java.util.List; public class Page {     //页面大小,每页显示的记录数     private int pageSize=2;     //开始页     private int beginStartPage=1;     //记录总数     private long recordCount=0;     //页数     private int pageCount = 0;     //每页的结果集     private List result=new LinkedList();     //private Iterator result;     public Page(){}         public Page(int pageSize,int pageNo,long rowCount,List result)     {         this.pageSize    = pageSize;         this.recordCount = rowCount;         this.result      = result;     }            public int getPageSize() {         return pageSize;     }     public void setPageSize(int pageSize) {         this.pageSize = pageSize;     }     public int getBeginStartPage() {         return beginStartPage;     }     public void setBeginStartPage(int beginStartPage) {         this.beginStartPage = beginStartPage;     }     public long getRecordCount() {         return recordCount;     }     public void setRecordCount(long recordCount) {         this.recordCount = recordCount;     }     public int getPageCount() {         return pageCount;     }     public void setPageCount(int pageCount) {         this.pageCount = pageCount;     }             public List getResult() {         return result;     }     public void setResult(List result) {         this.result = result;     }     public void setPageCountByRs()     {         int module = (int)this.recordCount%this.pageSize;                 if ( module == 0 )         {             setPageCount((int)this.recordCount/this.pageSize);                    }         else         {             setPageCount((int)(this.recordCount-module)/this.pageSize);         }            } }

//..............................................................................

public Page findPageByCriteria(int pageNo,int pageSize,String str)     {         log.debug("findPageByCriteria::start...");         Page  page = null;                if ( str!= null && !("".equals(str)) )         {                       JSONObject jsonObj = JSONObject.fromObject(str);             String username=jsonObj.getString("userName");             Criterion s1= null;                        if ( username != null && !("".equals(username)) )             {                 s1 = Restrictions.ilike("username",username,MatchMode.ANYWHERE);             }                         page = genPageDivided(pageNo, pageSize, UsrUser.class, s1);         }         else         {                       page = genPageDivided(pageNo, pageSize, UsrUser.class, null);         }                 if ( page != null )         {             page.setPageCountByRs();             List resultList = new LinkedList();             List<Object> lstObj =page.getResult();                    if ( lstObj != null && lstObj .size()!= 0 )             {                 for(Object  item : lstObj)                 {                   。。。。                     resultList.add(0,o);                                }                 page.setResult(resultList);                           }             else             {                 page = null;             }         }         else         {             page = null;         }         return page;        }         private Page genPageDivided(int pageNo,int pageSize,Class className,final Criterion... criterions)     {               Page page = daoDividePage.findPageByCriteria(pageNo, pageSize, className, criterions);         return page;     }

 

 

/**      * @explain 根据条件查询出来的记录进行分页和统计记录数      */     @SuppressWarnings("unchecked")     public Page findPageByCriteria(final int pageNo,final int pageSize,Class className,final Criterion... criterions)     {                Page page = null;         try         {                        final DetachedCriteria crit = DetachedCriteria.forClass(className);                        Integer totalCount = (Integer)getHibernateTemplate().execute(                     new HibernateCallback()                     {                         public Object doInHibernate(Session session)throws HibernateException, SQLException                         {                                                    Criteria ct = crit.getExecutableCriteria(session);                             if ( criterions!= null )                             {                                 for ( Criterion criterion:criterions )                                 {                                     if ( criterion != null )                                     {                                         ct.add(criterion);                                     }                                 }                             }                             else                             {                                 log.debug("criterions is null ");                             }                             return (Integer)ct.setProjection(Projections.rowCount()).uniqueResult();                                                }                     });                log.debug("totalCount is " + totalCount);             List result = (List)getHibernateTemplate().execute(                 new HibernateCallback()                 {                        public Object doInHibernate(Session session)throws HibernateException, SQLException                     {                         Criteria ct = crit.getExecutableCriteria(session);                         if ( criterions!= null )                         {                             for ( Criterion criterion:criterions )                             {                                 if ( criterion != null )                                 {                                     ct.add(criterion);                                 }                             }                         }                         ct.setProjection(null);                         ct.setFirstResult((pageNo-1)*pageSize);                         ct.setMaxResults(pageSize);                                                      return ct.list();                                                }                 });                log.debug("result.size is " + result.size());             page= new Page(pageSize,pageNo,totalCount,result);                        }         catch ( RuntimeException e )         {             e.printStackTrace();             return null;         }         return page;            }

相关资源:springMVC+hibernate的条件查询加分页的demo
转载请注明原文地址: https://www.6miu.com/read-5053563.html

最新回复(0)