帮忙看看这个分页有没有BUG?

周口店的程序猿 周口店的程序猿 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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>
<% } %>
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
周口店的程序猿
Web 开发 81,108 成员 341,721 内容