时间:2021-07-01 10:21:17 帮助过:20人阅读
Mysql和Oracle数据库中的分页查询
方法一:mysql数据库分页
<%
//定义每一页显示的记录
int pageSize = 3;
String strPageNo = request.getParameter("pageNo");
//记录当前页面
int pageNo;
//如果传入的当前页码为空,停留在第一页
if(strPageNo == null || strPageNo.equals(""))
{
pageNo = 1;
}
else
{
try
//把传进来的字符串转化成数字
{
pageNo = Integer.parseInt(strPageNo.trim());
}
catch(NumberFormatException e)
{
pageNo = 1;
}
//如果页码小于或者等于0停留在第一页
if(pageNo<=0)
{
pageNo=1;
}
}
//连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost/bbs?user=root&password=mingming");
Statement stCount = conn.createStatement();
ResultSet rsCount = stCount.executeQuery
("select count(*) from article where pid=0");//查询共有多少个根节点
rsCount.next();
int totalRecord = rsCount.getInt(1); //拿到所有的子节点,计算出总共有多少条记录
// 第一种方法 计算得到总的页数,如果能被整数,页数就是商,否则就是商+1
int totalPage =
totalRecord%pageSize==0 ? totalRecord/pageSize : totalRecord/pageSize +1;
//第二种方法 计算得到总的页数,在 总记录上+加一个pageSize然后减去1除页面的大小pageSize,取商
int totalRecords = rsCount.getInt(1);
totalPages = (totalRecords + PAGE_SIZE - 1)/PAGE_SIZE;
//如果当前页码大于总的页数,停在最后一页
if(pageNo>totalPage)
{
pageNo = totalPage;
}
//计算每一次分页时 的起始位置,注意起始是从0开始;
int startPos = (pageNo-1)*pageSize;
Statement st = conn.createStatement();
//进行分页查询,startPos是每一次分页的起始位置; pageSize是这一页要显示记录的大小
ResultSet rs = st.executeQuery
("select * from article where pid =0 order by pdate desc limit "+startPos+","+pageSize);
%>
分页后在页面的不同的显示方式:
方式一:在一个table中正常的显示:
<%= rs.getString("title") %>//只显示每一个记录的title |
首页<%=1 %> 共<%=totalPage %>页 第<%=pageNo %>页 末页<%=totalPage %>
"> 上一页
"> 下一页
方式二:可以选择的显示:可以实现页面的跳转
方式三:可以直接进行页面的查找:
//提交到当前页面
方法二:Oracle数据库下的分页操作
姓名 | 薪水 |
"+rs.getString(2)+" | ");"+rs.getString(6)+" | ");
bitsCN.com