mysql數(shù)據(jù)分頁顯示在jsp頁面上

思想:分頁需要四個變量:
currPage(當(dāng)前頁碼),pages(總頁碼),
PAGE_SIZE(每個頁面要顯示的數(shù)據(jù)行數(shù)),count(表數(shù)據(jù)的總行數(shù))

部分代碼如下:

得到count:

public int findCount(){
    int count=0;
    String sql = "select count(*) from appinfo";
    try{
        Statement sta = conn.createStatement();
        ResultSet rs = sta.executeQuery(sql);
        if(rs.next()){
            count = rs.getInt(1);  //對總記錄數(shù)賦值
        }
        rs.close();
        conn.close();
    }catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return count;        //返回總記錄數(shù)
} 

得到pages:

if(count%Data.PAGE_SIZE==0){
    pages=count/Data.PAGE_SIZE;
}else{
    pages=count/Data.PAGE_SIZE+1;
}

得到currPage:

if(request.getParameter("page")!=null){
    currPage=Integer.parseInt(request.getParameter("page"));
}

每一個分頁要顯示的數(shù)據(jù)list:

//getDatatList方法根據(jù)入口參數(shù)page傳遞的頁碼,查詢指定頁碼中的數(shù)據(jù)

public ArrayList<Data> getDatatList(int page){
    conn=fzConn.getConnection();
    ArrayList<Data> list = new ArrayList<Data>();
    String sql = "select* from appinfo limit ?,?";
        
    // 取得數(shù)據(jù)庫操作對象
    try{
        PreparedStatement  ps= conn.prepareStatement(sql);
        ps.setInt(1, (page-1)*Data.PAGE_SIZE);
        ps.setInt(2, Data.PAGE_SIZE);
        ResultSet rs = ps.executeQuery();
            
        // 循環(huán)記錄集,查看每一行每一列的記錄
        while (rs.next()) {
            String sdevid=rs.getString(1);
            String smobilevender=rs.getString(2);
            String sappver=rs.getString(3);
            String sorigin=rs.getString(5);
            String seventid=rs.getString(6);
            Data data = new Data();
            data.setDevid(sdevid);
            data.setMobilevender(smobilevender);
            data.setAppver(sappver);
            data.setOsver(sosver);
            data.setOrigin(sorigin);
            data.setEventid(seventid);
            list.add(data);
        }
        ps.close();   
    }catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
        return list;
}

調(diào)用getDatatList方法,傳入實參currPage,得到當(dāng)前頁面顯示的數(shù)據(jù)list:

SeeOMethod db = new SeeOMethod();
ArrayList<Data> list = db.getDatatList(currPage);

構(gòu)建分頁條:

StringBuffer sb = new StringBuffer();
//通過循環(huán)構(gòu)建分頁條
for(int i=1;i<=pages;i++){
    if(i==currPage){   //判斷是否為當(dāng)前頁
        sb.append("『"+i+"』");  //構(gòu)建分頁條
    }else{
        sb.append("<a href='SeeDataServlet?page="+i+"'>"+i+"</a>");
    }
    sb.append(" ");
}
request.setAttribute("bar", sb.toString());

將list傳入至See.jsp頁面:

request.setAttribute("list", list);
request.getRequestDispatcher("See.jsp").forward(request, response);

See.jsp:

<body>
    
    <table align="center"  border="1">
        <tr>
            <td>devid</td>
            <td>mobilevender</td>
            <td>appver</td>
            <td>osver</td> 
            <td>origin</td>
            <td>eventid</td>   
        </tr>
        <c:forEach items="${list}" var="data">
            <tr>
                <td>${data.devid }</td>
                <td>${data.mobilevender }</td> 
                <td>${data.appver }</td>
                <td>${data.osver }</td> 
                <td>${data.origin }</td>
                <td>${data.eventid}</td> 
            </tr>
        </c:forEach>    
    </table>

    <br></br>

    <table border="1">
        <tr>
            <td align="center" colspan="10">
               <%=request.getAttribute("bar")%>
            </td>
        </tr>
    </table>
</body>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容