最容易想的法就是读出其中的纪录数,然后来算哪一页显示哪几条
重用好像是<jsp:usebean>吧,我也刚看jsp,不怎么清楚。
重用好像是<jsp:usebean>吧,我也刚看jsp,不怎么清楚。
解决方案 »
- 小弟最近做猪小弟游戏遇到的小问题
- 为何无法修改文件?
- 我找不到自己发的帖子了。。。。。
- 什么是第三方包?
- 如何点一个按钮 可以关闭Dialog而不关闭Dialog的父组件?
- 请问谁有读取excel的包java excelAPI
- UTF-8码怎么中文显示出来?
- apache是用来做什么的,怎么设置?
- ·········哪位朋友有VisiBroker for Java 的安装程序?··········
- 求救:如何在JTable中动态添加一行?
- 我刚学jbuilder,很菜,各位前辈,请帮帮我的忙!!!!!!!!!!!!!!!!!!!!!!!!!!1
- 请问:怎样把一个文本文件的所有内容都读进一个String 里面呢??
作者:何志强[[email protected]]
日期:2000-08-03
版本:1.0
功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle
--%><%@ page contentType="text/html;charset=8859_1" %><%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage;int i;//设置一页显示的记录数
intPageSize = 2;//取得待显示页码
strPage = request.getParameter("page");
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}//装载JDBC驱动程序
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());//设置数据库连接字符串
strCon = "jdbc:oracle:thin:@linux:1521:ora4cweb";//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"hzq","hzq");//创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句
strSQL = "select name,age from test";//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);//获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle</title>
</head><body><table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr><%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1); //显示数据
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){
%>
<tr>
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%></table>第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%><a href="jdbc20-oracle.jsp?page=<%=intPage+1%>">下一页</a><%}%> <%if(intPage>1){%><a href="jdbc20-oracle.jsp?page=<%=intPage-1%>">上一页</a><%}%></body>
</html><%
//关闭结果集
sqlRst.close();//关闭SQL语句对象
sqlStmt.close();//关闭数据库
sqlCon.close();
%>
谢谢你的回答。我还有几个问题:
我能把一个结果集的记录都放在session里吗?
另外,我的bean里已经实现了分页功能,我怎么用在另一个页面里,使用这个bean的属性和方法?
我听说bean的范围设为Session和Application是可以的,可是在另一个页面里我怎么用呢?
希望你再关注一下,我现在就把分给你!
在你第一次的调用Bean查询的Sevlet或Jsp中
session.putValue("beanID",bean实例化的名字);
在其它页面上声明如下:
<jsp:useBean id="beanID" class="bean的包名+类名" scope="session" />
然后,你可以在jsp中通过beanID使用这个Bean
比如说:你在Bean定义一个arraylist或vector,将resultset放入里面,然后你在页面上可以能过beanID.getXXXVector()就行了。
处理数据就更加简单了,用vector和arraylist很容易就搞定了