81,094
社区成员
发帖
与我相关
我的任务
分享
MSSQL mssql = new MSSQL();
Connection conn = mssql.getConn();
boolean isDesc = true;//是否倒序
int nRsCount = 0;//总记录数
int nPageCount = 0;//总页数
int nCurrentPage = 1;//当前页数
int nRsPage = 10;//每页记录数
//默认为顺序排列
String orderA = "asc";
String orderB = "desc";
if(isDesc){
orderA = "desc";
orderB = "asc";
}
if( null != request.getParameter("page") ){
nCurrentPage = Integer.parseInt(request.getParameter("page"));
}
PreparedStatement pstmt = conn.prepareStatement("select count(*) from employee");
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
nRsCount = Integer.parseInt(rs.getString(1));
}
nPageCount = nRsCount / nRsPage ;
int mark = nRsCount % nRsPage;
if( mark > 0){
nPageCount++;
}
if( nCurrentPage > nPageCount){
nCurrentPage = nPageCount;
}
String sql = "select * from (select top "+ nRsPage +" * from (select top "+ nCurrentPage*nRsPage +" * from (select emp_id,fname,hire_date from employee) a order by 3 "+ orderA +" ) b order by 3 "+ orderB +") c order by 3 "+ orderA +"";
if( nCurrentPage == nPageCount){ //最后一页
int nEnd = nRsCount - (nPageCount-1)*nRsPage;
sql = "select * from (select top "+ nEnd +" * from (select top "+ nCurrentPage*nRsPage +" * from (select emp_id,fname,hire_date from employee) a order by 3 "+ orderA +" ) b order by 3 "+ orderB +") c order by 3 "+ orderA +"";
}
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
out.println(rs.getString(1)+"<br>");
}
%>
总共 <%=nPageCount%> 页
<%
for(int i=1;i<=nPageCount;i++){
%>
<a href="index.jsp?page=<%=i%>"><%=i%></a>
<% } %>