主页 > 知识库 > 数据库 > MySQL >

Mysql和Oracle数据库中的分页查询

来源:中国IT实验室 作者:佚名 发表于:2013-06-14 13:58  点击:
方法一:mysql数据库分页 % //定义每一页显示的记录 int pageSize = 3; String strPageNo = request.getParameter(pageNo); //记录当前页面 int pageNo; //如果传入的当前页码为空,停留在第一页 if(strPageNo == null || strPageNo.equals()) { pageNo = 1;
方法一: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中正常的显示:
  <table border="1">
  <%
  while(rs.next()){
  %>
  <tr>
  <td>
  <%= rs.getString("title") %>//只显示每一个记录的title
  </td>
  </tr>
  <%
  }
  //关闭流
  rs.close();
  st.close();
  conn.close();
  %>
  </table>
  首页<%=1 %>&nbsp;共<%=totalPage %>页 &nbsp;第<%=pageNo %>页&nbsp;末页<%=totalPage %>
  <a href="ShowArticleFlat.jsp?pageNo=<%=pageNo-1 %>"> 上一页 </a>&nbsp;
  <a href="ShowArticleFlat.jsp?pageNo=<%=pageNo+1 %>"> 下一页 </a>
  方式二:可以选择的显示:可以实现页面的跳转
  <form name="form1">
  <select name="pageNo" onchange="document.form1.submit()">
  <%
  for(int i = 1;i<=totalPage;i++){
  %>
  <option value=<%=i %> <%= pageNo==i?"selected":""%>>第<%=i %>页
  <%
  }
  %>
  </select>
  </form>
  方式三:可以直接进行页面的查找:
  //提交到当前页面
  <form name="fom2" action="ShowArticleFlat.jsp">
  <input type=text size=4 name="pageNo" value=<%=pageNo%> />
  <input type="submit" value="go" />
  </form>
  方法二:Oracle数据库下的分页操作
  <body>
  <h2>分页查询</h2>
  <table>
  <tr>
  <td>姓名</td>
  <td>薪水</td>
  </tr>
  <%
  //连接数据库,加载驱动
  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection ct = DriverManager.getConnection
  ("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
  Statement sm = ct.createStatement();

有帮助
(0)
0%
没帮助
(0)
0%