分页

主要写了一个Java类 里面装着两个方法 一个查询数据 还有 一个页面算法 用的时候直接调用就好了 要注意的是 页面调用时 要给两个方法传入 以下三个值:
String tmp = request.getParameter(“curPage”); //获取url上的页码
String sql = “SELECT * FROM XXXXXXX”;
String url = “index.jsp?curPage=”; //设置跳转时的url

paging.java

import java.sql.ResultSet;
import DateBase.DBHelper;
import sun.jkernel.StandaloneMessageDigest;

public class paging {

    public static int pagesize = 10;//一页显示数据数
    public static int shownum = 5;//显示页码数
    public static int totalPages;//总页数
    public static int curPage;//当前页页码

    public static String getpagedate(String sql, String cpage){  //cpage为页码获取到的当前页码
        String result = "";
        try{
            DBHelper db = null;
            ResultSet rs = null;
            db = new DBHelper(sql);
            rs = db.pst.executeQuery();
            rs.last();
            int size = rs.getRow();
            if(cpage==null){
                cpage="1";
            }
            curPage = Integer.parseInt(cpage);
            totalPages = (size%pagesize==0)?(size/pagesize):(size/pagesize+1);
            if(curPage>=totalPages) curPage = totalPages;
            boolean flag = rs.absolute((curPage-1)*pagesize+1);
            int count = 0;

            do{
        if(count>=pagesize)break;
        int id = rs.getInt(1);
        String name = rs.getString(2);
        String email = rs.getString(3);
        String leavel = rs.getString(4);
        count++;
        result += "<tr>";
        result += "<td width='5%'>"+id+"</td>";
        result += "<td width='5%'>"+name+"</td>";
        result += "<td width='5%'>"+email+"</td>";
        result += "<td width='5%'>"+leavel+"</td>";
        result += "</tr>";
        }while(rs.next());
            rs.close();
            db.close();
        }
        catch(Exception e){
            e.printStackTrace();
        }

        return result;

    }

    public static String getpageString(String url){

        String htmlString = "";  //最后要返回的String(包含首页、上一页、下一页、末页)
        String result = "";  //储存循环时获取的页码html

        //当前页页码小于1时 当前页页码为1
        if(curPage<1){
            curPage = 1;
        }else{
            curPage = curPage;
        }
        //当前页页码大于总页数时 当前页页码为总页数
        if(curPage>totalPages){
            curPage = totalPages;
        }else{
            curPage = curPage;
        }

        //计算开始页码
        int startnum = curPage - (shownum / 2);
        if(startnum<1){
            startnum = 1;
        }else{
            startnum = startnum;
        }

        //计算结束页码
        int endnum = curPage + (shownum / 2);
        if(endnum>totalPages){
            endnum = totalPages;
        }else{
            endnum = endnum;
        }

        //当前显示的页码个数不够最大页码数,在进行左右调整
        int curnum = endnum - startnum + 1;
        //左调整
        if( (curnum<shownum) && (startnum>1) ){
            startnum = startnum - (shownum - curnum);
            if(startnum<1){
                startnum = 1;
            }else{
                startnum = startnum;
            }
            curnum = endnum - startnum + 1;
        }
        //右调整
        if( (curnum<shownum) && (endnum<totalPages) ){
            endnum = endnum + (shownum - curnum);
            if(endnum>totalPages){
                endnum = totalPages;
            }else{
                endnum = endnum;
            }
        }

        //首页 上一页(第一页时 上一页按钮不跳转)
        htmlString += "<a href = index.jsp?curPage=1>首页&nbsp</a>";
        if(curPage>1){
            htmlString += "<a href = "+url+(curPage-1)+" >上一页&nbsp</a>";
        }else{
            htmlString += "<a href = '' >上一页&nbsp</a>";
        }

        //页码
        for(int i = startnum; i<=endnum; i++){
            if(i==curPage){
                result += "<a >&nbsp"+curPage +"&nbsp</a>";
            }else{
                result += "<a href = "+url+i+" >&nbsp"+i+"&nbsp</a>";
            }
        }

        htmlString += result;

        //尾页 下一页(最后一页时 下一页按钮不跳转)
        if(curPage<endnum){
            htmlString += "<a href = "+url+(curPage+1)+" >&nbsp下一页</a>";
        }else{
            htmlString += "<a href = '' >&nbsp下一页</a>";
        }

        htmlString += "<a href = index.jsp?curPage="+totalPages+">&nbsp末页</a>";

        htmlString += "第"+curPage+"页/共"+totalPages+"页";

        return htmlString;

    }

}

index.jsp

<%@ page contentType="text/html" pageEncoding="UTF-8" language="java"%>
<%@ page import="java.sql.*,DateBase.DBHelper"%>
<%@ page import="page.paging"%>
<%
String tmp = request.getParameter("curPage");  //获取url上的页码
String sql = "SELECT * FROM users order by id";
String url = "index.jsp?curPage=";   //设置跳转时的url
%>
<html>
    <head>
        <title>paging</title>
    </head>
    <body>

    <!-- date start -->
    <table border="1" spacing="2" style="text-align:center;width:100%;">
        <%=paging.getpagedate(sql, tmp)%>
    </table>
    <!-- date end -->

    <!-- pagecount start -->
    <div style="text-align:center;width:100%;bottom: 15px;position:absolute;">
        <%=paging.getpageString(url)%>
    </div>
    <!-- pagecount end -->

</body>
</html>

DBHelper.java

public DBHelper(String sql) {
        try {
            Class.forName(name);//指定连接类型
            conn = DriverManager.getConnection(url, user, password);//获取连接
            pst = conn.prepareStatement(sql);//准备执行语句
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

DB的话主要就这部分 有什么不清楚的 可以看

http://blog.csdn.net/oyy527/article/details/52523849

DB表:
DB表

运行效果:
运行效果

附件:
http://download.csdn.net/detail/qq_22778717/9630627

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值