分页功能

来源:互联网 发布:win10自动安装软件 编辑:程序博客网 时间:2024/05/22 05:29

最初的时候没有涉及MVC模式的时候,我做分页就是在jsp页面上进行分页,在后面的时候分页我就和页面分开,只是输出分页的信息完成分页,最后分页使用的是hibernate实现分页。这里因为复习,我使用我刚开始使用的方法来实现分页功能,后面涉及到会再次实现分页。

思路:

首先定义四个分页变量 :pageNow当前页    pageCount共多少页 pageSize每一页显示的几条记录 rowCount共有多少条记录。

pageNow是变化的,根据用户点击页码。pageSize一般是程序员自己指定的,也可以让用户设置。

pageCount由RoeCount和pageSize来决定:(rowCount-1)/pageSize + 1;

rowCount是有数据库里面的查询出来的数据量。

然后我们需要知道我们所使用数据库所自带的sql语句,我这里使用的是MySQL:

SELECT * FROM TT LIMIT 1,20
SELECT * FROM TT LIMIT 21,30

例如从表Sys_option(主键为sys_id)中从第10条记录开始检索20条记录,语句如下:
select * from sys_option limit 10,20

Java测试如下:







此时我们可以看出来,我们sql语句已然起到作用,将3条数据中两条截出来,分页就是通过上面定义的四个变量使用到此语句中,然后就基本实现分页的功能。

下面具体事例来说:为了省事,我就数据库的数据写死在上面,省去查询RowCount的查询

Java代码:

 <body>  <%  int pageNow=1,pageSize=2,pageCount=0,rowCount=3;  if(s!=null){pageNow=Integer.parseInt(s);}elsepageNow=1;pageCount=(rowCount-1)/pageSize+1;    ResultSet rs=JDBCUtil.pageSize("select * from thephonebook limit "+pageSize*(pageNow-1)+","+pageSize+"");   %>    This is my JSP page. <br>    <table>    <tr><td>姓名</td><td>电话</td><td>地址</td></tr>    <%    while(rs.next()){     %>    <tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td></tr>    <%    }     %>    </table>    <%for(int i=1;i<=pageCount;i++){ %> <a href="index.jsp?pageNow=<%=i%>"><%=i %></a><%} %>  </body></html>

完成分页。


1 0
原创粉丝点击