在Web開發之中,經常需要使用MySQL數據庫進行數據的存儲和查詢,而JSP作為一種Java語言的服務器端網頁技術,也是經常被用作Web開發之中。在JSP網頁之中,經常會出現需要進行分頁顯示數據的需求,而這時就需要通過MySQL數據庫進行分頁查詢。以下是一個MySQL JSP 分頁查詢的實例。
<% int currentPage = request.getParameter("currentPage") == null ? 1 : Integer.parseInt(request.getParameter("currentPage")); //獲取當前頁碼,默認為1 int pageSize = 10; //每頁顯示10條數據 //連接MySQL數據庫 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); //執行SQL語句,獲取總記錄數 String sql1 = "SELECT COUNT(*) as total FROM mytable"; Statement stmt1 = conn.createStatement(); ResultSet rs1 = stmt1.executeQuery(sql1); rs1.next(); int total = rs1.getInt("total"); //計算總頁數 int totalPages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1; //執行SQL語句,獲取當前頁數據 String sql2 = "SELECT * FROM mytable LIMIT " + (currentPage - 1) * pageSize + "," + pageSize; Statement stmt2 = conn.createStatement(); ResultSet rs2 = stmt2.executeQuery(sql2); %>
ID | Name | Age |
---|---|---|
<%= rs2.getInt("id") %> | <%= rs2.getString("name") %> | <%= rs2.getInt("age") %> |
"); if (currentPage == 1) { out.print("首頁 上一頁 "); } else { out.print("首頁"); out.print("上一頁"); } if (currentPage == totalPages) { out.print("下一頁 尾頁"); } else { out.print("下一頁"); out.print("尾頁"); } out.print("當前第" + currentPage + "頁,共" + totalPages + "頁"); out.print("
"); %><% //關閉數據庫連接 rs1.close(); rs2.close(); stmt1.close(); stmt2.close(); conn.close(); %>上面的代碼首先通過request.getParameter()方法獲取當前頁碼,如果沒有指定則默認為1。然后通過JDBC API連接MySQL數據庫,并執行兩條SQL語句獲取總記錄數和當前頁數據。接著計算總頁數,并使用while循環遍歷當前頁數據,使用HTML代碼將數據顯示在網頁之中。最后輸出分頁導航條,包括首頁、上一頁、下一頁和尾頁等鏈接,同時也顯示當前頁碼和總頁數。最后關閉數據庫連接。