JSP+JDBC_真分页(基于MySql数据库分页)
<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><head><title>分页显示</title></head><body><center><h1>人员列表</h1><hr><br><%// 进行乱码处理request.setCharacterEncoding("GB2312");%><%!final String jspUrl = "list_person.jsp";%><%// 定义如下分页变量// 1、定义每页要显示的记录数int lineSize = 10;// 2、定义当前页int currentPage = 1;// 计算出总页数int pageSize = 0;// 总记录数int allRecorders = 0;// 加入查询关键字变量String keyWord = "";%><%// 接收查询关键字keyWord = request.getParameter("kw");// 接收传过来的当前页try {currentPage = Integer.parseInt(request.getParameter("cp"));} catch(Exception e) {}%><%final String DBDRIVER = "org.gjt.mm.mysql.Driver";final String DBURL = "jdbc:mysql://localhost/test";final String DBUSER = "root";final String DBPASSWORD = "depravedAngel";Connection conn = null;%><%try {Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);String sql = null;PreparedStatement pstmt = null;ResultSet rs = null;if(keyWord == null || "".equals(keyWord)) {sql = "SELECT COUNT(*) FROM person";} else {sql = "SELECT COUNT(*) FROM person WHERE uid LIKE ? OR name LIKE ?";}pstmt = conn.prepareStatement(sql);if(!(keyWord == null || "".equals(keyWord))) {pstmt.setString(1,"%" + keyWord + "%");pstmt.setString(2,"%" + keyWord + "%");}rs = pstmt.executeQuery();if(rs.next()){allRecorders = rs.getInt(1);}rs.close();pstmt.close();// 计算总页数 pageSize = (allRecorders+lineSize-1)/lineSize; if(keyWord == null || "".equals(keyWord)) { sql = "SELECT id,uid,name,password FROM person limit " + (currentPage-1)*lineSize + "," + lineSize; } else {sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ? limit " + (currentPage-1)*lineSize + "," + lineSize;} pstmt = conn.prepareStatement(sql);if(!(keyWord == null || "".equals(keyWord))) {pstmt.setString(1,"%" + keyWord + "%");pstmt.setString(2,"%" + keyWord + "%");}rs = pstmt.executeQuery();%><script language="javaScript">function openPage(curpage){document.spage.cp.value = curpage;document.spage.submit();}function selOpenPage(){document.spage.cp.value = document.spage.selpage.value;document.spage.submit();}</script><form name="spage" action="<%=jspUrl %>">输入查询关键字:<input type="text" name="kw" value="<%=keyWord %>"><input type="submit" value="查询"><br><br><%if(allRecorders > 0) { %><input type="button" value="首页" <%=currentPage==1?"disabled":"" %>><input type="button" value="上一页" <%=currentPage==1?"disabled":"" %>><input type="button" value="下一页" <%=currentPage==pageSize?"disabled":"" %>><input type="button" value="尾页" <%=currentPage==pageSize?"disabled":"" %>><input type="hidden" name="cp" value=""><font color="red" size="5"><%=currentPage %></font>/<font color="red" size="5"><%=pageSize %></font>跳转到<select name="selpage" onChange="selOpenPage()"><%for(int x=1;x<=pageSize;x++){%><option value="<%=x %>" <%=currentPage==x?"selected":"" %>><%=x %></option><%}%></select>页<% }%></form><table border="1" width="80%"><tr><td>编号</td><td>登陆名称</td><td>姓名</td><td>密码</td><td colspan="2">操作</td></tr><%int i = 0; // 对于输出代码之前要求按显示的页数空出while(rs.next()) {i++;int id = rs.getInt(1);String uid = rs.getString(2);String name = rs.getString(3);String password = rs.getString(4);%><tr><td><%=id%></td><td><%=uid%></td><td><%=name%></td><td><%=password%></td><td>更新</td><td>删除</td></tr><%}rs.close();pstmt.close();if (i == 0) {%><tr><td colspan="6">没有数据!!!</td></tr><%}%></table><%} catch (Exception e) {} finally {conn.close();}%></center></body></html>
页:
[1]