Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1277679
  • 博文数量: 185
  • 博客积分: 50
  • 博客等级: 民兵
  • 技术积分: 3934
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 13:11
个人简介

iihero@ChinaUnix, ehero.[iihero] 数据库技术的痴迷爱好者. 您可以通过iihero AT qq.com联系到我 以下是我的三本图书: Sybase ASE in Action, Oracle Spatial及OCI高级编程, Java2网络协议内幕

文章分类

全部博文(185)

文章存档

2014年(4)

2013年(181)

分类: Java

2013-07-17 11:45:13

准备工作:
在Oracle下,建立一张表:
CREATE TABLE mytable(id int, name varchar(32))
/

往表mytable里插入一些值。

testpage.jsp页面程序如下:


< import="java.util.*"%>
< import="java.lang.*"%>
< import="java.io.*"%>
< import="java.sql.*"%>
< import="java.net.*"%>
< contentType="text/html;charset=GBK" %>

<%
  String sConn="jdbc:oracle:thin:@host:1521:orcl";  
  Class.forName("oracle.jdbc.driver.OracleDriver");  
  Connection conn=DriverManager.getConnection(sConn,"user","password");  
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);  
  //Statement stmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 

  ResultSet rs=stmt.executeQuery("select * from mytable");  
  //String sqlcount="select count(*) from mytable";  
  //ResultSet rscount=stmtcount.executeQuery(sqlcount); 

  int pageSize=5; //每页5条  
  int rowCount=0; //总的记录数 

  rs.last();
  rowCount = rs.getRow();


int pageCount; //总的页数  
int currPage = 0; //当前页数  
String strPage;  
strPage=request.getParameter("page"); 


if (strPage==null){  
  currPage=1;  
 
else{  
  currPage=Integer.parseInt(strPage);  
  if (currPage<1) currPage=1;  
 
pageCount=(rowCount+pageSize-1)/pageSize;  
if (currPage>pageCount) currPage=pageCount; 

int thepage=(currPage-1)*pageSize;  
int n=0;  
 
%>


当前为第:<%=currPage%>页

首 页 

<%
  if (currPage>1){
%>
  上一页  
<%
  }
%>
<%
  if (currPage %>
  下一页  
<%
  }
%>
尾 页




共<%=rowCount%>条记录 页次:<%=currPage%>/<%=pageCount%>页    <%=pageSize%>条/页  


<%
  if (currPage>0){
    rs.absolute(thepage+1); 
    while (n       out.println("");
      rs.next();
      ++n;
    }

  }
%>


<%
  rs.close();  
  //rscount.close();  
  stmt.close();  
  //stmtcount.close();  
  conn.close();  
%> 

//偶在Oracle8.1.6上测试,结果能显示出来,但是name字段值给的好像是16进制字节串。但在Oracle8.1.7以后都没问题。可能是jdbc的支持程度不一样。

阅读(1487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
");
      out.println(rs.getInt(1)+"
");
      out.println(rs.getString(2)+"