分页首先需要考虑以下四个变量。
int pageSize:每页显示多少条记录;
int pageCount:总共有多少页;
int pageNow:当前显示页;
int rowCount:一共有多少条记录;
其中:pageSize是我们指定,想让页面显示多少条就让他显示多少条记录,
pageNow是用户选择的,rowCount是数据库中的数据总共有多少条,pageCount就是
计算出来的页数。
计算算法如下:
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}
else{
pageCount=rowCount/pageSize+1;
}
**select *from tableName limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录**
<h1>用户信息表</h1>
<%
//定义分页变量
int pageSize=3;//一页有几条
int pageNow=1;//当前页数
int rowCount=0;//总共有多少条
int pageCount=0;//总共有多少页
String pageNum=request.getParameter("pageNow");
if(pageNum!=null){
pageNow= Integer.parseInt(pageNum);
}
String username="root";
String password="admin";
String url="jdbc:mysql://localhost:3306/jsp";
Connection conn=null;
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection(url,username,password);
PreparedStatement ps=null;
ResultSet rs=null;
String sql="select count(*) from users";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
rowCount=rs.getInt(1);//获取数据库的总记录数;
}
//计算pageCount;
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;//不能整除+1;
}
//String sql="select * from product limit "+(pageNo-1)*pageSize+","+pageSize;
String sql1="select * from users limit "+(pageNow-1)*pageSize+","+pageSize+"";
ps=conn.prepareStatement(sql1);
rs=ps.executeQuery();
%>
<table border="1" bgcolor="#33ffee">
<tr><td>ID</td><td>用户名</td><td>密码</td><td>邮箱</td><td>权限</td></tr>
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getInt(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(3) %></td>
<td><%=rs.getString(4) %></td>
<td><%=rs.getString(5) %></td>
</tr>
<%
}
%>
</table>
<%
if(pageNow>1){
out.println("<a href=wel.jsp?pageNow="+(pageNow-1) +">上一页</a>");
}
for(int i=1;i<=pageCount;i++){
out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>");
}
if(pageNow<pageCount){
out.println("<a href=wel.jsp?pageNow="+(pageNow+1) +">下一页</a>");
}
%>