黑马程序员技术交流社区
标题:
ssh如何实现分页,求各位大神给出详细的思路谢谢
[打印本页]
作者:
lilin202011
时间:
2014-4-3 22:56
标题:
ssh如何实现分页,求各位大神给出详细的思路谢谢
ssh如何实现分页技术,把具体思路和大概的实现方法解释一遍,在此谢过了
作者:
muma
时间:
2014-4-3 23:39
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接口中定义了如上两个代码方法:
作者:
lilin202011
时间:
2014-4-5 09:51
muma 发表于 2014-4-3 23:39
分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作 ...
你还没写完
作者:
残梦共飞雪
时间:
2014-4-5 10:10
分页操作是把数据根据条件查询数据库,获取到指定数据然后显示。
若每页30,第一页就是1-30,第5页就是121-150
在SQLserver中,每页30条,则第一页是top(30)。
ORACLE则是运用伪列。
一个hibernate分页
public class CommomsDAO {
private static final Log log = LogFactory.getLog(EcOpusDAO.class);
//获得会话
private static HibernateTemplate hibernateTemplate = new HibernateTemplate(HibernateSessionFactory.getSessionFactory());
/** *//**
* 分页通用方法
* @param hql HQL查询语句
* @param offset 起始记录下标
* @param lengh 读取记录数
* @return List 结果集
*/
public static List getListForPage(final String hql, final int offset, final int lengh) {
log.debug("finding ListForPage");
try {
List list = hibernateTemplate.executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
List list2 = session.createQuery(hql)
.setFirstResult(offset)
.setMaxResults(lengh)
.list();
return list2;
}});
return list;
} catch (RuntimeException re) {
log.error("find ListForPage failed", re);
throw re;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2