发表于 2009-11-28 和 18:53:49 | 作者: marcycn | 626 views
}
2.DAO层实现类MemberDaoImpl对上面两个方法的实现如下:
细心的读者会发现,这个类继承了HibernateDaoSupport类,HibernateDaoSupport是Spring提供的对Hibernate支持的类,getHibernateTemplate().executeFind(new HibernateCallback(){….})方法中的参数,我们使用了接口回调,在其参数内,我们能像原生的Hibernate一样调用query.setFirstResult(offset)和query.setMaxResults(length)来实现分页查询功能。 3、下面我们来新建一个保存分页信息的类PageBean,具体代码如下:
4、Service层接口的设计:
5、Service层实现类的部分内码如下:
6. 在Struts2中调用queryForPageMemberService层的queryForPage()方法即可return一个包含分页信息、符合条件的结果集list, 代码如下
@Override
7.最后在listMember.jsp页面中,用到了Struts2标签:
到这里,Hibernate+Spring+Struts2整合开发中的分页问题就已经解决了,在我上述过程中,省略了许多Hibernate,Spring,Struts2的配置,那不是本文的重点,大家可以参考有关的书与资料,由于篇幅有限,在此就不一一列举。在以后的文章中,我也会详细地跟大家讲述SSH整合开发。 转载:http://www.blogjava.net/rongxh7/archive/2009/10/09/243456.html
标签: Spring struts hibernate, SSH, SSH分页, 分页
你这个分页里面有一个致命的问题 public int getAllRowCount(String hql){ return getHibernateTemplate().find(hql).size(); } 你这样所有的记录都让你获取回来了,如果这个表里有1000万或更大的数据,你计算机的内存能吃得消吗?就算能,你这分页效率也太低了吧,查出所有再分,分页还有什么意义了???? 应该改Hql前面加select count(*) 获取到记录数,不明白的话给我发邮件,哥给你讲讲
名称 (必须)
邮件地址(不会被公开) (必须)
网站
没有公告,请登陆后添加。
你这个分页里面有一个致命的问题
public int getAllRowCount(String hql){
return getHibernateTemplate().find(hql).size();
}
你这样所有的记录都让你获取回来了,如果这个表里有1000万或更大的数据,你计算机的内存能吃得消吗?就算能,你这分页效率也太低了吧,查出所有再分,分页还有什么意义了????
应该改Hql前面加select count(*) 获取到记录数,不明白的话给我发邮件,哥给你讲讲