- public interface MemberDao{
-
- //省略了其他的代码
-
- /** *//**
- * 分页查询
- * @param hql 查询的条件
- * @param offset 开始记录
- * @param length 一次查询几条记录
- * @return
- */
- public List queryForPage(final String hql,final int offset,final int length);
-
- /** *//**
- * 查询所有记录数
- * @param hql 查询的条件
- * @return 总记录数
- */
- public int getAllRowCount(String hql);
- }
- 2.DAO层实现类MemberDaoImpl对上面两个方法的实现如下:
- public class MemberDaoImpl extends HibernateDaoSupport implements MemberDao {
- //省略了其他的代码
- /** *//**
- * 分页查询
- * @param hql 查询的条件
- * @param offset 开始记录
- * @param length 一次查询几条记录
- * @return
- */
- public List queryForPage(final String hql,final int offset,final int length){
- List list = getHibernateTemplate().executeFind(new HibernateCallback(){
- public Object doInHibernate(Session session) throws HibernateException,SQLException{
- Query query = session.createQuery(hql);
- query.setFirstResult(offset);
- query.setMaxResults(length);
- List list = query.list();
- return list;
- }
- });
- return list;
- }
- /** *//**
- * 查询所有记录数
- * @return 总记录数
- */
- public int getAllRowCount(String hql){
- return getHibernateTemplate().find(hql).size();
- }
- }
复制代码 分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流。
DAO层接口的设计,在MemberDao接口中定义了如上两个代码方法:
|