<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 分頁實現 ## 為什么要分頁 在 Web 應用中,從數據庫中查詢數據然后在頁面顯示是一個非常常見的場景,在這個場景中,數據會經歷這樣的一個過程,從數據庫查詢 → 通過 JDBC 加載到 Java 集合對象中 → 通過 request 對象轉發給 JSP 頁面 → JSP頁面遍歷顯示。 如果一次性把所有的數據都加載出來(對于數據量大的查詢),由上面的描述可以知道,對于數據庫服務器、Web 服務器、客戶端的數據處理壓力都是很大的。而且往往用戶不會一次性的瀏覽那么多的數據。 在目前的分頁實現中,一般使用固定頁碼和逐步加載的方式完成。 這里,我們主要解釋下固定頁碼實現方式的原理。 ## 如何分頁 作為一個分頁的實體,一般要具備的屬性包括: - 每頁顯示數據條數、當前頁碼、一共多少條記錄 - 一共多少頁:該字段可以通過一共多少條記錄和每頁顯示數據量求得 - 數據集合實體 前端的一個請求,一般會傳遞兩個重要參數:當前頁碼和每頁顯示條數 一共多少條記錄,通過數據庫中 count() 函數完成,在 MySQL 中查詢部分數據通過 LIMIT 關鍵字完成。 **代碼實現:** Pager 實體類: ~~~ package cn.utils; import java.util.List; public class Pager { /** * 當前頁 */ private int currentPage; /** * 每頁顯示多少條 */ private int pageSize; /** * 總記錄數 */ private int total; /** * 一共多少頁 */ private int totalPage; /** * 查詢出的數據集合 */ private List rs; public List getRs() { return rs; } public void setRs(List rs) { this.rs = rs; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public int getTotalPage() { return (int)Math.ceil(this.total*1.0/this.pageSize); } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public static void main(String[] args) { System.out.println((int)Math.ceil(16*1.0/5)); } public Pager(int currentPage, int pageSize) { super(); this.currentPage = currentPage; this.pageSize = pageSize; } public Pager() { super(); } public Pager(String currentPage) { super(); try { this.currentPage = Integer.valueOf(currentPage); } catch(Exception ex) { this.currentPage = 1; } this.pageSize = 5; } } ~~~ Dao 層的實現代碼 ~~~ /** * 分頁查詢學生 * @return */ public void findByPage(Pager pager) { List<Student> stus = new ArrayList<Student>(); // 獲取用戶數據列表 try { Class.forName(DbHelp.JDBC_DRIVER); Connection conn = DriverManager.getConnection(DbHelp.JDBC_URL, DbHelp.JDBC_USERNAME, DbHelp.JDBC_PASSWORD); PreparedStatement ps = conn.prepareStatement("SELECT * FROM student LIMIT ?,?"); ps.setInt(1, (pager.getCurrentPage()-1)*pager.getPageSize()); ps.setInt(2, pager.getPageSize()); ResultSet rs = ps.executeQuery(); while (rs.next()) { Student stu = new Student(); int id = rs.getInt("id"); String name = rs.getString("name"); String code = rs.getString("code"); stu.setId(id); stu.setName(name); stu.setCode(code); stus.add(stu); } ps.close(); ps = conn.prepareStatement("SELECT count(*) FROM student"); rs = ps.executeQuery(); if (rs.next()) { pager.setTotal(rs.getInt(1)); } ps.close(); conn.close(); } catch (Exception ex) { ex.printStackTrace(); } pager.setRs(stus); } ~~~ JSP 部分代碼 ~~~ <div> 共${pager.total }記錄&nbsp;&nbsp;共${pager.totalPage }頁 &nbsp;&nbsp; <c:forEach var="i" begin="1" end="${pager.totalPage }"> <c:if test="${i==pager.currentPage }"> ${i }&nbsp; </c:if> <c:if test="${i!=pager.currentPage }"> <a href="IndexServlet?currentPage=${i }">${i }</a>&nbsp; </c:if> </c:forEach> </div> ~~~ 以上兩段代碼重點要關注: - 對于 pager 對象的屬性構造過程和對象傳遞; - JSP 部分對于 pager 對象的解析。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看