应用Hibernate3的DetachedCriteria实现分页查询Word格式.docx
《应用Hibernate3的DetachedCriteria实现分页查询Word格式.docx》由会员分享,可在线阅读,更多相关《应用Hibernate3的DetachedCriteria实现分页查询Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
setStartIndex(startIndex);
publicPaginationSupport(Listitems,inttotalCount,intpageSize,intstartIndex){
setPageSize(pageSize);
publicListgetItems(){
returnitems;
publicvoidsetItems(Listitems){
this.items=items;
publicintgetPageSize(){
returnpageSize;
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
publicintgetTotalCount(){
returntotalCount;
publicvoidsetTotalCount(inttotalCount){
if(totalCount&
amp;
gt;
0){
this.totalCount=totalCount;
intcount=totalCount/pageSize;
if(totalCount%pageSize&
0)
count++;
indexes=newint[count];
for(inti=0;
i&
lt;
count;
i++){
indexes[i]=pageSize*i;
}else{
this.totalCount=0;
publicint[]getIndexes(){
returnindexes;
publicvoidsetIndexes(int[]indexes){
this.indexes=indexes;
publicintgetStartIndex(){
returnstartIndex;
publicvoidsetStartIndex(intstartIndex){
=0)
this.startIndex=0;
elseif(startIndex&
=totalCount)
this.startIndex=indexes[indexes.length-1];
else{
this.startIndex=indexes[startIndex/pageSize];
publicintgetNextIndex(){
intnextIndex=getStartIndex()+pageSize;
if(nextIndex&
returngetStartIndex();
else
returnnextIndex;
publicintgetPreviousIndex(){
intpreviousIndex=getStartIndex()-pageSize;
if(previousIndex&
return0;
returnpreviousIndex;
}
publicclassPaginationSupport{
publicfinalstaticintPAGESIZE=30;
privateintpageSize=PAGESIZE;
privateListitems;
privateinttotalCount;
privateint[]indexes=newint[0];
privateintstartIndex=0;
publicPaginationSupport(Listitems,inttotalCount){
setPageSize(PAGESIZE);
setTotalCount(totalCount);
setItems(items);
setStartIndex(0);
}
publicPaginationSupport(Listitems,inttotalCount,intstartIndex){
setStartIndex(startIndex);
publicPaginationSupport(Listitems,inttotalCount,intpageSize,intstartIndex){
setPageSize(pageSize);
publicListgetItems(){
returnitems;
publicvoidsetItems(Listitems){
this.items=items;
publicintgetPageSize(){
returnpageSize;
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
publicintgetTotalCount(){
returntotalCount;
publicvoidsetTotalCount(inttotalCount){
if(totalCount&
0){
this.totalCount=totalCount;
intcount=totalCount/pageSize;
if(totalCount%pageSize&
0)
count++;
indexes=newint[count];
for(inti=0;
i++){
indexes[i]=pageSize*i;
}else{
this.totalCount=0;
publicint[]getIndexes(){
returnindexes;
publicvoidsetIndexes(int[]indexes){
this.indexes=indexes;
publicintgetStartIndex(){
returnstartIndex;
publicvoidsetStartIndex(intstartIndex){
=0)
this.startIndex=0;
elseif(startIndex&
=totalCount)
this.startIndex=indexes[indexes.length-1];
else{
this.startIndex=indexes[startIndex/pageSize];
publicintgetNextIndex(){
intnextIndex=getStartIndex()+pageSize;
if(nextIndex&
returngetStartIndex();
else
returnnextIndex;
publicintgetPreviousIndex(){
intpreviousIndex=getStartIndex()-pageSize;
if(previousIndex&
return0;
returnpreviousIndex;
}抽象业务类Java代码
/**
*Createdon2005-7-12
*/
packagemon.business;
importjava.io.Serializable;
importorg.hibernate.Criteria;
importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.criterion.DetachedCriteria;
importorg.hibernate.criterion.Projections;
importorg.springframework.orm.hibernate3.HibernateCallback;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importmon.util.PaginationSupport;
publicabstractclassAbstractManagerextendsHibernateDaoSupport{
privatebooleancacheQueries=false;
privateStringqueryCacheRegion;
publicvoidsetCacheQueries(booleancacheQueries){
this.cacheQueries=cacheQueries;
publicvoidsetQueryCacheRegion(StringqueryCacheRegion){
this.queryCacheRegion=queryCacheRegion;
publicvoidsave(finalObjectentity){
getHibernateTemplate().save(entity);
publicvoidpersist(finalObjectentity){
publicvoidupdate(finalObjectentity){
getHibernateTemplate().update(entity);
publicvoiddelete(finalObjectentity){
getHibernateTemplate().delete(entity);
publicObjectload(finalClassentity,finalSerializableid){
returngetHibernateTemplate().load(entity,id);
publicObjectget(finalClassentity,finalSerializableid){
returngetHibernateTemplate().get(entity,id);
publicListfindAll(finalClassentity){
returngetHibernateTemplate().find("
from"
+entity.getName());
publicListfindByNamedQuery(finalStringnamedQuery){
returngetHibernateTemplate().findByNamedQuery(namedQuery);
publicListfindByNamedQuery(finalStringquery,finalObjectparameter){
returngetHibernateTemplate().findByNamedQuery(query,parameter);
publicListfindByNamedQuery(finalStringquery,finalObject[]parameters){
returngetHibernateTemplate().findByNamedQuery(query,parameters);
publicListfind(finalStringquery){
returngetHibernateTemplate().find(query);
publicListfind(finalStringquery,finalObjectparameter){
returngetHibernateTemplate().find(query,parameter);
publicPaginationSupportfindPageByCriteria(finalDetachedCriteriadetachedCriteria){
returnfindPageByCriteria(detachedCriteria,PaginationSupport.PAGESIZE,0);
publicPaginationSupportfindPageByCriteria(finalDetachedCriteriadetachedCriteria,finalintstartIndex){
returnfindPageByCriteria(detachedCriteria,PaginationSupport.PAGESIZE,startIndex);
publicPaginationSupportfindPageByCriteria(finalDetachedCriteriadetachedCriteria,finalintpageSize,
finalintstartIndex){
return(PaginationSupport)getHibernateTemplate().execute(newHibernateCallback(){
publicObjectdoInHibernate(Sessionsession)throwsHibernateException{
Criteriacriteria=detachedCriteria.getExecutableCriteria(session);
inttotalCount=((Integer)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
criteria.setProjection(null);
Listitems=criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
PaginationSupportps=newPaginationSupport(items,totalCount,pageSize,startIndex);
returnps;
},true);
publicListfindAllByCriteria(finalDetachedCriteriadetachedCriteria){
return(List)getHibernateTemplate().execute(newHibernateCallback(){
returncriteria.list();
publicintgetCountByCriteria(finalDetachedCriteriadetachedCriteria){
Integercount=(Integer)getHibernateTemplate().execute(newHibernateCallback(){
returncriteria.setProjection(Projections.rowCount()).uniqueResult();
returncount.intValue();
/**
*Createdon2005-7-12
*/
publicabstractclassAbstractManagerextendsHibernateDaoSupport{
privatebooleancacheQueries=false;
privateStringqueryCacheRegion;
publicvoidsetCacheQueries(booleancacheQueries){
this.cacheQueries=cacheQueries;
publicvoidsetQueryCacheRegion(StringqueryCacheRegion){
this.queryCacheRegion=queryCacheRegion;
publicvoidsave(finalObjectenti