韩顺平的分页代码

分页技术算法详解
 
解决中文乱码:
res.setCharacterEncoding("gbk");
PrintWriter pw=res.getWriter();
变量定义:
int pageSize=3:每页显示多少条记录
int pageNow=1:希望显示第几页(用户选择)
int pageCount=0:一共有多少页
int rowCount=0:一共有多少条记录
Class.forName();
ct=DriverManager.getConnection();
ps=ct.prepareStatement("SELECT COUNT(*) FROM 表名");
rs=ps.executeQuery();
if(rs.next()){
 rowCount=rs.getInt(1);
}
if(rowCount%pageSize==0){
 pageCount=rowCount/pageSize;
}else{
 pageCount=rowCount/pageSize+1;
}
ps=ct.prepareStatement("SELECT 字段名列表 FROM 表名 LIMIT "+pageSize*(pageNow-1)+","+pageSize+"");
//ps.setInt(2,pageSize);
rs=ps.executeQuery();
pw.println("<table border=1>");
pw.println("<tr><th></th><th></th></tr>");
while(rs.next()){
 pw.println("<tr>")
 pw.println("<td>"+rs.getInt(1)+"</td>")
 pw.println("</tr>");
}
pw.println("</table>");
MySql数据库:
【SELECT 字段名列表 FROM 表名 LIMIT pageSize*(pageNow-1),pageSize】
SQLServer数据库:
【select top pageSize * from users where id not in
(select top pageSize*(pageNow-1) id from 表名)】
如果当前页面不是第一页就显示上一页
if(pageNow!=1)
上一页 
for(int pageNum=pageNow;pageNum<pageCount;pageNum++) 
上一篇:Java 获取年 月 日 时 分 秒


下一篇:Boost源代码学习---shared_ptr.hpp