您的位置:首页 > 编程语言 > Java开发

JAVA和MySQL实现分页和页面跳转指定当前显示页数的问题

2017-07-13 16:59 891 查看
  首先,分页需要JDBC基础。所以分页也没什么好说的,主要是分页算法。直接扔出代码 String sql2 = "select * from job limit ?,? ";
ps = conn.prepareStatement(sql2);
ps.setInt(1,(pageNow-1)*pageShowNum);
ps.setInt(2,pageShowNum);
rs = ps.executeQuery();
for(int i = 0;i<pageShowNum;i++){
if(rs.next()){
out.println("<tr bgcolor='white'>");
out.println("<td>"+rs.getString(5)+"</td>");
out.println("<td>"+rs.getString(6)+"</td>");
out.println("<td>"+rs.getString(4)+"</td>");
out.println("<td>"+rs.getString(7)+"</td>");
out.println("<td>"+rs.getString(8)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("</tr>");
}
}
out.println("</table>");
其中有几个分页算法的重要变量

int pageNow = 1;//当前页码
int pageAll = 0;//一共多少页
int pageShowNum = 10;//每页显示多少条内容
int rowAll = 0;//一共多少条内容
下面,重点来了。如何实现类似于百度下面的页面点击跳转效果呢。就是下面只指定的显示出了10页,然后当你点击头6页,下面的页面并不会动,当你点击第七页的时候,第一个编程2,最后一个编程11.点击第9页,第一个可点击页编程4,最后一页变成13。在页尾也是,在点击页尾最后4页的时候不会动,比如一共30页。点击30,29,28,26,27的时候,
下面一直显示,21,22,23,24,25,26,27,28,29,30。

但是当你点击25时下面会显示  18 ,19,21,,22,23,24,25,26,27,28

笔者能力有限,实在 没看懂怎么个效果可以去百度看看。反正就是类似于滚动的这用效果,往后点就往后滚,往前点就会往前滚。

当然实现这个主要就是算法问题

  主要是看当前页

如果当前页小于等于10,那么直先输出1-10

如果当前页-6  >  0并且 当前页 +4 小于等于总页数

就显示出,当前页-6到当前页+4页

如果当前页+4大于总页数,就显示出最后10页

,下面扔出算法代码

if(pageNow-6<0){
for(int i = 1;i<11;i++){
out.println("<a href=MainFace?pageNow="+i+">【"+i+"】</a>");
}
}
if(pageNow+4>pageAll){
for(int i = pageAll-10;i<=pageAll;i++){
out.println("<a href=MainFace?pageNow="+i+">【"+i+"】</a>");
}
}
if(pageNow>=6&&pageNow+4<=pageAll){
for(int i = pageNow-5;i<pageNow;i++){
out.println("<a href=MainFace?pageNow="+i+">【"+i+"】</a>");
}
for(int i = pageNow;i<=pageNow+4;i++){
out.println("<a href=MainFace?pageNow="+i+">【"+i+"】</a>");
}
}
out.println("<a href=MainFace?pageNow="+pageAll+">【尾页】</a>");
out.println("<a href=MainFace?pageNow="+(pageNow+1)+">【下一页】</a>");
out.println("</tr></td>");
out.println("</table>");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息