分页关键知识点总结

来源:互联网 发布:淘宝客服需要什么学历 编辑:程序博客网 时间:2024/05/19 14:16

分页的两种方式:

1.     使用复杂的子查询sql语句实现分页;

2.     使用Hibernate Query接口提供的方法:

SetFirstResult(): 设置第一条记录的位置,初始位置为0,参数为(currentPage-1)*pageSize;

SetMaxResults(): 设置最大返回的记录条数,参数为PageSize。

 

分页查询涉及的参数:

记录总数 totalCount: select count(*) from tableName;

总页数 totalPage: totalCount%pageSize==0? totalCount/pageSize: totalCount/pageSize+1;

每页记录数 pageSize

当前页码数currentPage

 

第一种方式:

sql = select * from (select a.*,ROWNNUM rn from (select * from news ) a where ROWNNUM >=?) where rn<=?;

pstmt = con.prepareStatement(sql);    

起始记录数:(currentPage-1)*pageSize+1;

结束记录数:currentPage*pageSize;

设置参数pstmt.setObject();

rst = pstmt.executeQuery();    // 执行查询,获取结果集

 

第二种方式:

Hql=select id,author from news; // 不需要分页参数

Query queryList = session.createQuery(hql);

queryList.setFirstResult((currPage-1)*pageSize);//开始

queryList.setMaxResults(pageSize); //每页的数据量

lists = queryList.list(); // 直接获取list集合

 

前台页面

 

共?条第?页共?页 首页上一页下一页尾页跳转?页每页?条

红色部分为静态显示,黄色部分为js动作控制,主要改变currentPage参数值。

绿色部分可静态显示,也可动态改变。

因此需要传递的参数:currentPage,(pageSize)

 

注意首次查询应对传递参数进行非空判断,如果为空应赋默认值。

0 0