java分页思想

来源:互联网 发布:国产发票软件 编辑:程序博客网 时间:2024/06/18 11:25

首先要定义四个变量:
int pageSize:每页显示多少条记录
int pageNow:希望显示第几页
int pageCount:一共有多少页
int rowCount:一共有多少条记录

说明:搜索
pageSize是指定的 pageNow是用户选择的
pageCount(第几页)是计算出来的 该计算式为

System.out.println(10%10);  //0
 System.out.println(11%10);  //1


if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

 

查询语句
select top pageSize字段名列表from表名where id not in
(select top pageSize*(pageNow-1)id from 表名)
以我们前面的users表为例,显示第二页,该查询语句就是:


pageSize=3   pageNow=2

select top 3 * from users where userId not in(select top 3 userId from users)


(select top 3 userId from users):选出这个表的前三条 前面再选三条

<h1>用户信息列表</h1>
<%
//定义四个分页会用到的变量


int pageSize=3;
int pageNow=1;//默认显示第一页
int rowCount=0;//该值从数据库中查询
int pageCount=0;//该值是通过pageSize和rowCount(总共几页)


//接受用户希望显示的页数(pageNow)
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
//接收到了pageNow
pageNow=Integer.parseInt(s_pageNow);
}


//查询得到rowCount
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa","");
Statement sm=ct.createStatement();
ResultSet rs=sm.exeuteQuery("select count(*) form users ");
if(rs.next()){
rowCount=rs.getInt(1);
}
//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}


//查询出需要显示的记录
rs=sm.exeuteQuery("select top "+pageSize
+" * from users where userId not in(select top "
+pageSize*(pageNow-1)+" userId from users) ");
%>
//显示

<table border="1">
<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.getInt(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>");
}
%>

 

0 0
原创粉丝点击