访问地址 http://www.qqread.com/dotnet/d396758.html
抽象业务类
用户在web层构造查询条件detachedCriteria,和可选的startIndex,调用业务bean的相应findByCriteria方法,返回一个PaginationSupport的实例ps。
ps.getItems()得到已分页好的结果集
ps.getIndexes()得到分页索引的数组
ps.getTotalCount()得到总结果数
ps.getStartIndex()当前分页索引
ps.getNextIndex()下一页索引
ps.getPreviousIndex()上一页索引
更多内容请看SQL Server 索引和查询专题、Hibernate原理与配置、Hibernate应用专题,或进入讨论组讨论。
抽象业务类
/**//** * Created on 2005-7-12 */ package com.javaeye.common.business; import java.io.Serializable; import java.util.List; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Projections; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.javaeye.common.util.PaginationSupport; public abstract class AbstractManager extends HibernateDaoSupport ...{ private boolean cacheQueries = false; private String queryCacheRegion; public void setCacheQueries(boolean cacheQueries) ...{ this.cacheQueries = cacheQueries; } public void setQueryCacheRegion(String queryCacheRegion) ...{ this.queryCacheRegion = queryCacheRegion; } public void save(final Object entity) ...{ getHibernateTemplate().save(entity); } public void persist(final Object entity) ...{ getHibernateTemplate().save(entity); } public void update(final Object entity) ...{ getHibernateTemplate().update(entity); } public void delete(final Object entity) ...{ getHibernateTemplate().delete(entity); } public Object load(final Class entity, final Serializable id) ...{ return getHibernateTemplate().load(entity, id); } public Object get(final Class entity, final Serializable id) ...{ return getHibernateTemplate().get(entity, id); } public List findAll(final Class entity) ...{ return getHibernateTemplate().find("from " + entity.getName()); } public List findByNamedQuery(final String namedQuery) ...{ return getHibernateTemplate().findByNamedQuery(namedQuery); } public List findByNamedQuery(final String query, final Object parameter) ...{ return getHibernateTemplate().findByNamedQuery(query, parameter); } public List findByNamedQuery(final String query, final Object[] parameters)
{ return getHibernateTemplate().findByNamedQuery(query, parameters); } public List find(final String query) ...{ return getHibernateTemplate().find(query); } public List find(final String query, final Object parameter) ...{ return getHibernateTemplate().find(query, parameter); } public PaginationSupport findPageByCriteria(final DetachedCriteria
detachedCriteria)
...{ return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE, 0); } public PaginationSupport findPageByCriteria(final DetachedCriteria
detachedCriteria,
final int startIndex) ...{ return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE,
startIndex); } public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria,
final int pageSize, final int startIndex) ...{ return (PaginationSupport) getHibernateTemplate().execute(
new HibernateCallback() ...{ public Object doInHibernate(Session session) throws
HibernateException ...{ Criteria criteria = detachedCriteria.getExecutableCriteria(session); int totalCount = ((Integer) criteria.setProjection(
Projections.rowCount()).
uniqueResult()).intValue(); criteria.setProjection(null); List items = criteria.setFirstResult(startIndex).
setMaxResults(pageSize).list(); PaginationSupport ps = new PaginationSupport(items,
totalCount, pageSize, startIndex); return ps; } }, true); } public List findAllByCriteria(final DetachedCriteria detachedCriteria) ...{ return (List) getHibernateTemplate().execute(new HibernateCallback() ...{ public Object doInHibernate(Session session) throws HibernateException ...{ Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.list(); } }, true); } public int getCountByCriteria(final DetachedCriteria detachedCriteria) ...{ Integer count = (Integer) getHibernateTemplate().execute(
new HibernateCallback() ...{ public Object doInHibernate(Session session) throws HibernateException ...{ Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.setProjection(Projections.rowCount()).uniqueResult(); } }, true); return count.intValue(); } }
ps.getItems()得到已分页好的结果集
ps.getIndexes()得到分页索引的数组
ps.getTotalCount()得到总结果数
ps.getStartIndex()当前分页索引
ps.getNextIndex()下一页索引
ps.getPreviousIndex()上一页索引
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- SQL Server 索引和查询专题 (3323篇文章)
- Hibernate原理与配置 (359篇文章)
- Hibernate应用 (18篇文章)
- Hibernate相关文章 (359篇文章)
- 用vb.net实现闹钟提醒程序 (9次浏览)
- C#变得越来越臃肿是不可避免的? (7次浏览)
- .NET开发人员犯的6大安全错误 (6次浏览)
- C#与EXCEL的数据交互(一) (5次浏览)
- vb.net GDI+入门——画笔、画刷和颜色 (3次浏览)
- C# 3.0新特性之扩展方法 (1次浏览)
- VB.Net实现进程监视器的方法 (1次浏览)
- 请跟我来--使用Ext搞个原型 (1次浏览)
- ASP.NET 3.5 Extensions带来什么 (1次浏览)
- WPF的Attached属性 (0次浏览)



